ThinkPHP中上传图片成功,但是数据库字段内容是NULL

php中文网
发布: 2016-06-23 14:10:25
原创
1285人浏览过

ThinkPHP中上传图片成功,但是数据库字段内容是NULL

 Public function upload(){
    import('ORG.Net.UploadFile');
    $upload = new UploadFile();// 实例化上传类
    $upload->maxSize  = 3145728 ;// 设置附件上传大小
    $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $upload->savePath =  './Public/Uploads/';// 设置附件上传目录
    if(!$upload->upload()) {// 上传错误提示错误信息
    $this->error($upload->getErrorMsg());
    }else{// 上传成功 获取上传文件信息 
    $info =  $upload->getUploadFileInfo();
    }
    // 保存表单数据 包括附件数据
    $User = M("Photo"); // 实例化User对象
    $User->create(); // 创建数据对象
    $User->photo = $info[0]['tupian']; // 保存上传的照片根据需要自行组装
    $User->add(); // 写入用户数据到数据库
    $this->success('数据保存成功!');
    }

  怎样重命名上传的图片,并成功插入到数据库中

MiniMax Agent
MiniMax Agent

MiniMax平台推出的Agent智能体助手

MiniMax Agent 839
查看详情 MiniMax Agent

回复讨论(解决方案)

$User->add($info);
最好是把最后的$this->success('数据保存成功!');弄到if语句的else里面。
不然好像就没成功也显示成功。
我也是新手

把$info打印出来看下。

$User->add($info);
最好是把最后的$this->success('数据保存成功!');弄到if语句的else里面。
不然好像就没成功也显示成功。
我也是新手

array(1) { [0]=> array(8) { ["name"]=> string(7) "444.jpg" ["type"]=> string(10) "image/jpeg" ["size"]=> int(2502) ["key"]=> int(0) ["extension"]=> string(3) "jpg" ["savepath"]=> string(17) "./Public/Uploads/" ["savename"]=> string(7) "444.jpg" ["hash"]=> string(32) "9a4e6104c8b37bb4df69e059339545d1" } } 

把$info打印出来看下。


array(1) { [0]=> array(8) { ["name"]=> string(7) "444.jpg" ["type"]=> string(10) "image/jpeg" ["size"]=> int(2502) ["key"]=> int(0) ["extension"]=> string(3) "jpg" ["savepath"]=> string(17) "./Public/Uploads/" ["savename"]=> string(7) "444.jpg" ["hash"]=> string(32) "9a4e6104c8b37bb4df69e059339545d1" } }  

把$info打印出来看下。


怎样才能把savepath  保存到数据库中?


"savepath" => "./Public/Uploads/"
"savename" => "444.jpg"
可知
$User->photo = substr($info[0]['savepath'], 1) . $info[0]['savename']; 


"savepath" => "./Public/Uploads/"
"savename" => "444.jpg"
可知
$User->photo = substr($info[0]['savepath'], 1) . $info[0]['savename']; 

哈哈 好的 谢谢 成功了
我的好多问题都是你帮我解决的阿
大神阿 受小女子一拜 


把$info打印出来看下。


怎样才能把savepath  保存到数据库中?
表示有关路径配置的东西,都应该放到配置文件里面去,不应该保存在数据库中。数据库里面只存放文件名。
另外,你的文件没有经过重命名,很容易出现文件重名被覆盖的情况,建议在网上查找一个可以生成唯一标识符的函数,生成唯一标识文件名,然后重命名后再插入。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号