Codeigniter自帶的文件上傳類非常好用,您可以設(shè)置指定上傳某類型的文件及指定大小的文件。不過(guò)在使用的過(guò)程中需要注意一些小問(wèn)題,否則會(huì)讓你感到措手不及。
在筆者使用Codeigniter的upload上傳類時(shí)候,總是出現(xiàn)“You did not select a file to upload”錯(cuò)誤,從代碼里面看并沒(méi)有什么錯(cuò)誤,這是怎么回事呢?
1、文件域的名字被修改
方法一:
找了半天發(fā)現(xiàn)筆者將Views文件的文件域的名字修改成了fileimg,而CI默認(rèn)的文件域的名字是userfile,即形如:<input type="file" name="userfile" size="20" />。這個(gè)是不能修改的,否則就會(huì)找不到上傳文件。
原理就是:$this->upload->do_upload()默認(rèn)上傳文件的表單名為userfile。
方法二:
其實(shí)還有解決方法,如果文件域是其他名字。比如:
<input type="file" name="imgfile" size="20" />
將 $this->upload->do_upload();
改為 $this->upload->do_upload(‘imgfile’);
這樣就可以了!
2、form表單類型
form表單需要使用form_open_multipart,形成HTML的時(shí)候會(huì)增加了一個(gè)屬性enctype="multipart/form-data",這個(gè)其實(shí)是常識(shí)了,注意一下就好。