【发布时间】:2020-11-02 09:25:52
【问题描述】:
我想在 Codeigniter 中使用 jquery ajax 一次上传多个文件,单次上传正常,但我尝试上传多个文件但收到此错误:
您没有选择要上传的文件
对于单选,此代码有效,但我只向文件字段添加了数组类型,而不是引发上述错误,任何解决此问题的建议。
控制器代码:-
public function do_upload()
{
if (($_SERVER['REQUEST_METHOD']) == "POST") {
for($i=0; $i<count($_FILES['attach_file']['name']); $i++){
$filename = $_FILES['attach_file']['name'][$i];
$filename = strstr($filename, '.', true);
$email = $this->session->userdata('email');
$filename = strstr($email, '@', true)."_".$filename;
$filename = strtolower($filename);
$config['upload_path'] = FCPATH .'./assets/attachments/';
$config['allowed_types'] = 'pdf|doc|docx|bmp|gif|jpg|jpeg|jpe|png';
$config['max_size'] = 0;
$config['max_width'] = 0;
$config['max_height'] = 0;
$this->load->library('upload', $config);
$name = 'attach_file[]';
if ( ! $this->upload->do_upload($name) ) {
$data['exception'] = $this->upload->display_errors();
$data['status'] = false;
echo json_encode($data);
} else {
$upload = $this->upload->data();
$data['message'] = 'Uploaded successfully';
$data['filepath'] = './assets/attachments/'.$upload['file_name'];
$data['status'] = true;
echo json_encode($data);
}
}
}
}
查看:-
<?php echo form_open_multipart('form','class="form-inner" id="userForm" ') ?>
<input type="file" name="attach_file[]" id="attach_file"
multiple="true">
jQuery:
<script type="text/javascript">
$(function(){
var browseFile = $('#attach_file');
var form = $('#userForm');
var progress = $("#upload-progress");
browseFile.on('change',function(e)
{
e.preventDefault();
uploadData = new FormData(form[0]);
$.ajax({
url : '<?php echo base_url('do_upload') ?>',
type : form.attr('method'),
dataType : 'json',
cache : false,
contentType : false,
processData : false,
data : uploadData,
beforeSend : function()
{
},
success : function(data)
{
},
error : function()
{
}
});
});
});
【问题讨论】:
-
您想通过 ajax 点击按钮上传多张图片。??
-
@KUMAR:是的,我想一次上传多张图片
-
试试这段代码并告诉我会发生什么?
-
你试过这个代码吗?
-
很高兴听到和快乐的编码............
标签: jquery ajax codeigniter codeigniter-3 codeigniter-2