thinkphp上传文件后获取不到信息

具体就是这样,打印数组为空

注意表单的Form标签中一定要添加 enctype=”multipart/form-data”文件才能上传。因为表单提交到当前模块的upload操作方法,所以我们在模块类里面添加下面的upload方法即可:
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("User"); // 实例化User对象
$User->create(); // 创建数据对象
$User->photo = $info[0]['savename']; // 保存上传的照片根据需要自行组装
$User->add(); // 写入用户数据到数据库
$this->success('数据保存成功!');
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-08-21

会不会玩啊?上传文件用get。


html:

<form action="__URL__/upload" enctype="multipart/form-data" method="post" >
<input type="text" name="name" />
<input type="file" name="photo" />
<input type="submit" value="提交" >
</form>

PHP:

public function upload(){
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     3145728 ;// 设置附件上传大小
    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
    $upload->rootPath  =     './Uploads/'; // 设置附件上传根目录
    $upload->savePath  =     ''; // 设置附件上传(子)目录
    // 上传文件 
    $info   =   $upload->upload();
    if(!$info) {// 上传错误提示错误信息
        $this->error($upload->getError());
    }else{// 上传成功
        $this->success('上传成功!');
    }
}

本回答被提问者采纳

thinkphp上传文件后获取不到信息
upload->savePath = '.\/Public\/Uploads\/';\/\/ 设置附件上传目录 if(!$upload->upload()) {\/\/ 上传错误提示错误信息 this->error($upload->getErrorMsg());}else{\/\/ 上传成功 获取上传文件信息 info = $upload->getUploadFileInfo();} \/\/ 保存表单数据 包括附件数据 User = M("User");...

thinkphp开发的网站程序在本地测试可以 上传到服务器打开无法显示是什么...
出现这种问题,一般是缓存不可写或者是你的配置存在一些问题。thinkphp采用了模板缓存技术使得访问速度提升,那么它需要可写的权限,你检查一下你上传到服务器的文件夹是不是只读状态。如果确定不是不可写的问题,那么就检查你的配置,比如访问路径错误啊,上传过程文件没传输完整啊之类的。总之,没有解决...

用thinkPHP开发的系统本地能运行,上传到服务器打开显示一片空白,你解...
如果可以的话再试试把某写文件删除掉,看看有没有出现错误,如果没有说明有其他文件优先级比index.php 高,比如 default.html 等服务器自带的欢迎文件

linux服务器下thinkPHP类文件明明存在,为什么依然显示not found,错误...
在linux一般文件你确认有,但是系统告诉你没有,都是权限问题,使用chmod赋予文件最大权限就可以解决问题:chmod 777 -R \/YouObject

thinkphp 写ios接口 $_POST 接收不到数据,但是IOS说是用post方式传递数...
你好!传文件不能用POST接收,并且发送文件类型需要在表单里面添加enctype="multipart\/form-data"这个才能发送文件。如: 在控制器中需要用$_FILES这个来接收上传的文件数据。

thinkphp 5.1 获取不到config的自定义的值
据我分析应该是文件执行顺序的问题 我猜测你的config::set 是在控制器里面写的,当代码执行到你的config::set的时候文件已经跑完所有的config文件了 当代码跑到你的config::get的时候代码没有重新跑所有的config文件所有就获取不到你的set值了 所以需要你的代码跑到config文件之前进行set操作 欢迎光临我...

关于thinkphp上传问题
upload->thumbMaxHeight = '200';\/\/删除原图 upload->thumbRemoveOrigin = true;\/\/上传失败返回错误信息 if(!$upload->upload()){ this->error($upload->getErrorMsg());}else{ this->success('上传成功');\/\/获取上传文件的信息 inf= $upload->getUploadFileInfo();} ...

thinkphp开发的网站上传到服务器上显示空白页,请问如何改权限和缓存...
请确认你在本机测试无误 如果一切正常,那么看一下配置文件,是否服务器与本机的环境有不同 将THINKPHP的缓存文件全部删除,将所有PHP文件去除BOM头 如果还是无法工作,那么打开DEBUG输出提示看看,有了提示就更容易分析问题了

thinkphp include不能输出动态数据,有什么办法解决
你要把后台传值的代码写在你调用这个模板的页面,才能在读取这个页面的时候得到模板跟值啊,不然include只是调用模板,并不能把方法里传的值也调过来。。,说简单点就是你用不到header的方法

ThinkPHP数据库查询为什么没有显示结果,求教高手!
页面空白应该不是上面问题导致的,具体要看情况,参考以下建议:使用M("user") 替换 new Model("user"),并在下一行使用var_dump($select) 输出查看数据结构。如果页面空白,说明数据库 或者 user 模型存在问题。html中{:$select[0]['address']}这种形式读取数据,如果有数据,说明就是select()查询...

相似回答