我想上传多个文件上传。 我在客户端有这个:
$(document).on( "click", ".save-button", function () {
var data = new FormData();
data.append('title', $(this).parent().parent().find("#title_place").val());
$.each($(this).parent().parent().find("input[type='file']")[0].files, function(i, file) {
data.append('file', file);
});
$.ajax({type: "POST",
url: 'save_view.php',
data: data,
success : viewSaveCallBack,
cache: false,
contentType: false,
processData: false,
});
});
我检查了debuger中的所有数据,它运行正常。为了看到这一点,我显示了
的值 $(this).parent().parent().find("#title_place").val()
并且
$(this).parent().parent().find("input[type='file']")[0].files
然后,当我在服务器端尝试var_dump $ _FILES或$ _POST时,它是空的。 调试器也是如此。
我也试过
data.append('files[]', file);
当我尝试上传单个文件(在另一个输入中,不是完全相同的代码)时,这样可以正常工作。
输入的html就是这个:
<input type=\"file\" multiple directory webkitdirectory allowdirs class=\"form-control input\" id=\"marzipano\">
它会动态添加到DOM中。
当我上传单个文件时,工作正常。
它不是Sending multipart/formdata with jQuery.ajax的副本,因为我已经使用了FormData对象,而且我的代码与答案相同。它仍然没有按预期工作。
答案 0 :(得分:0)
尝试:
var files = $(this).parent().parent().find("input[type='file']")[0].files;
for(var i=0; i<files.length; i++) {
data.append('file['+i+']', files[i]);
}
在PHP中,您可以通过$_POST["file"]
答案 1 :(得分:0)
我的代码实际上正在运行,问题是php.ini中的post_max_size
太低了。