CodeIgniter - 使用一个输入上传多个文件

时间:2012-03-23 20:08:05

标签: php html5 codeigniter file-upload

我正在尝试从 ONE输入一次上传多个文件

<input type="file" name="form-image[]" id="form-image" multiple="true" />

没有 CodeIgniter 的情况下工作正常。在我尝试使用CodeIgniters文件助手做同样的事情;我收到错误(is_uploaded_file() expects parameter 1 to be string, array given),表示我做错了,或者CodeIgniter只是不支持多个文件?

到目前为止我的错误代码:

//Iterate through each file uploaded
for ($i = 0; isset($_FILES['form-image']['name'][$i]); $i++) {

   //Fix the settings
   $config['upload_path'] = "./static/vimmel/";
   $config['file_name'] = time() . rand(1,988);
   $config['allowed_types'] = 'gif|jpg|png';
   $config['max_size']  = '1024';
   $config['max_width']  = '1024';
   $config['max_height']  = '768';
   $this->load->library('upload', $config);

   //Do the upload
   $this->upload->do_upload("form-image")
}

请注意我编辑了所有错误处理等。另请注意,我不使用is_uploaded_file()函数。

感谢所有帮助和建议。感谢。

2 个答案:

答案 0 :(得分:2)

CodeIgniter不支持多个文件。在foreach中使用do_upload()与在外部使用它不同。

您需要在没有CodeIgniter帮助的情况下处理它。这是一个例子https://github.com/woxxy/FoOlSlide/blob/master/application/controllers/admin/series.php#L331-370

答案 1 :(得分:1)

我正在使用上传库的扩展,其中包含一个接受文件数组的do_multiple_upload()函数

https://github.com/nicdev/CodeIgniter-Multiple-File-Upload

它缺少一些错误管理(例如,如果您的某个文件没有允许的扩展名,则整个上传失败),但您可以在循环中更改continue的返回值。

希望它有助于某人...