我想将多个图片对象发布到testphp.php。但控制台打印错误说非法调用。
我试过了:
<script type="text/javascript" src="/script/googleapis.js"></script>
<input multiple type="file" id="myFile" size="50">
<div id="sub">submit</div>
<div id="testtest"></div>
<script>
$("#sub").click(function(){
// get the file objects
var files = $("#myFile")[0].files;
for (var i = 0; i < files.length; i++){
//test if the files[i] has the file objects
console.log(files[i]);
//post objects to another php file
$.post("testphp.php", {img: files[i]}, function(result){
$("#testtest").html(result);
});
}
})
答案 0 :(得分:1)
你不能这样做。如果您要发布文件,则需要使用FormData
。
我还建议一次上传所有文件,而不是一次发布一个。
要发布FormData
,您需要使用$.ajax
代替。
$("#sub").click(function(){
// get the file objects
var files = $("#myFile")[0].files,
data = new FormData;
for (var i = 0; i < files.length; i++){
//test if the files[i] has the file objects
console.log(files[i]);
//post objects to another php file
data.append('img[]', files[i]);
}
$.ajax({
url: "testphp.php",
type: "POST",
data: data,
contentType: false,
processData: false,
success: function(result){
$("#testtest").html(result);
}
});
});
现在在PHP中,如果要上传多个文件,则$_FILES['img']['name']
(以及其他键)可能是数组。