我有这个脚本将上传多个文件,它将由控制器检索。
如何在AJAX请求的数据:部分中添加其他数据,例如:
data: data + '&reference='+$('#ref').val(),
控制器
function insertAttachment() {
$i = 0;
$referenceNo = $this->input->post('reference');
if(!isset($_FILES[$i]) ) {
}
else {
$x = $_FILES[$i]['name'];
$xx = explode('.', $x);
$config['upload_path'] = 'MRS-files\Upload_files';
$config['allowed_types'] = 'xls|doc|jpg|png|gif|pdf';
$this->load->library('upload',$config);
for($i; $i <= 4; $i++) {
$counter = $_FILES;
while ( $i <= count($counter) ) {
$x = $_FILES[$i]['name'];
$xx=explode(".", $x);
$config['file_name']= 'IT2015' .'('. ($i+1) .').'. $xx[1];
$this->upload->initialize($config);
$_FILES['up']['name'] = $_FILES[$i]['name'];
$_FILES['up']['tmp_name'] = $_FILES[$i]['tmp_name'];
$_FILES['up']['type'] = $_FILES[$i]['type'];
$_FILES['up']['size'] = $_FILES[$i]['size'];
if ( ! $this->upload->do_upload('up')) {
//error on uploading
echo str_replace('','',$this->upload->display_errors()); //temporary commented no use cause of redirect to homepage
//$this->cancelREC();
exit();
}
else {
$data = array('upload_data' => $this->upload->data());
$this->edit_development_model->insertonAttachments($data['upload_data'] , $referenceNo);
$i++;
}
}
}
}
}
这是脚本:
function EditUploadImage() {
var data = new FormData($('input[name^="edit_files"]'));
jQuery.each($('input[name^="edit_files"]')[0].files, function(i, file) {
data.append(i, file);
});
$.ajax ({
type: 'POST',
data: data,
url: 'mis.php/edit_development_detailsControl/updateRequest',
cache: false,
contentType: false,
processData: false,
success: function(data) {
alert(data);
//messagealert("Success","You're Request have been save successfully");
}
});
}
答案 0 :(得分:0)
希望这个能帮到你。
var fd = new FormData();
var file_data = $('input[type="file"]')[0].files; // for multiple files
for(var i = 0;i<file_data.length;i++){
fd.append("file_"+i, file_data[i]);
}
var other_data = $('form').serializeArray();
$.each(other_data,function(key,input){
fd.append(input.name,input.value);
});
$.ajax({
url: 'test.php',
data: fd,
contentType: false,
processData: false,
type: 'POST',
success: function(data){
console.log(data);
}
});