我正在尝试从 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()
函数。
感谢所有帮助和建议。感谢。
答案 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的返回值。
希望它有助于某人...