Codeigniter自带的文件上传类非常好用,您可以设置指定上传某类型的文件及指定大小的文件。不过在使用的过程中需要注意一些小问题,否则会让你感到措手不及。
在笔者使用Codeigniter的upload上传类时候,总是出现“You did not select a file to upload”错误,从代码里面看并没有什么错误,这是怎么回事呢?
1、文件域的名字被修改
方法一:
找了半天发现笔者将Views文件的文件域的名字修改成了fileimg,而CI默认的文件域的名字是userfile,即形如:<input type="file" name="userfile" size="20" />。这个是不能修改的,否则就会找不到上传文件。
原理就是:$this->upload->do_upload()默认上传文件的表单名为userfile。
方法二:
其实还有解决方法,如果文件域是其他名字。比如:
<input type="file" name="imgfile" size="20" />
将 $this->upload->do_upload();
改为 $this->upload->do_upload(‘imgfile’);
这样就可以了!
2、form表单类型
form表单需要使用form_open_multipart,形成HTML的时候会增加了一个属性enctype="multipart/form-data",这个其实是常识了,注意一下就好。