ThinkPHP 上传提示没有选择上传文件

 

首先请看清楚提示,如果你确保没有上传文件,但是又要保存数据时请使用一下方法:

 

因为我们再修改某条数据时,有可能只是改变了某个数据的文字信息,而其他的不想改变,这个时候如果有UploadFile方法就会报出:“没有选择上传文件”。Ho,No,我就是不想改变图片信息,那怎么通过呢?没关系其实很简单

找到ThinkPHP的包,找到UploadFile.class.php 一般路径是 ThinkPHP/Extend/Library/ORG/Net/UploadFile.class.php

找到文件的第186行,这里做了一个判断

if(!empty($file['name'])) {................}

对,这个就是判断有没有上传文件的。然后在这个if判断的后面加上如下红色部分代码

if(!empty($file['name'])) {................}

else{
       $fileInfo[]    = null;
       $isUpload   = true;
}

这样如果上传文件是空的话也不会爆错,只是会返回一个空值。

然后我们在接收  $picInfo =  $upload->getUploadFileInfo();  时如果print_r($picInfo) 就会输出 Array([0]->)

对因为我测试的时候只是上传一张图,如果是多张图的话应该输出的是

(多张图都是空的)                 Array([0]-> [1]-> [2]->……)

(中间有一张图不是空的)       Array([0]-> [1]->Array(……) [2]->……)

好了,现在明白了吗?这样我们就可以在保存数据时判断了

$data=M('news');

if(count($picInfo[0])>0){
      $data->PIC_1=$picInfo[0]['savename'];
}

if(count($picInfo[1])>0){
      $data->PIC_2=$picInfo[1]['savename'];
}

以此类推。

好了,问题解决了,希望我的小小发现能给大家带来点好处。

 

1 thought on “ThinkPHP 上传提示没有选择上传文件

Comments are closed.