0
我想申請AJAX上傳的圖片,並給他們的名字:上傳圖片functon的jQuery的檢查由陣列中的所有文件上傳一個文件後,每到一站上傳
JS部分是:
function sendFile(file) {
$.ajax({
type: 'post',
url: '@routes.CommonController.uploadhandler("")' + file.name,
data: file,
success: function() {
return true;
},
error: function(){
return false;
},
xhr: function(){
// get the native XmlHttpRequest object
var xhr = $.ajaxSettings.xhr() ;
// set the onprogress event handler
xhr.upload.onprogress = function(evt){ console.log('progress', evt.loaded/evt.total*100) } ;
// set the onload event handler
xhr.upload.onload = function(){ console.log('DONE!') } ;
// return the customized object
return xhr ;
},
processData: false,
contentType: file.type
});
}
該文件列表是FileList對象。它應該是:文件列表{0:文件,1:文件,長度:2,項目:函數}
上傳每一個畫面功能的管理是:
$("#px-submit").click(function(event){
var arrayfiles=[];
var filelist=$("#filename").prop("files");
for (var i = 0; i < filelist.length; i++) {
arrayfiles[i] = filelist[i];
}
console.log("arrayfiles:", arrayfiles);
var allsuccess=arrayfiles.every(function(element, index, array) {
console.log("sending:", element.name);
var r=sendFile(element);
return r;
});
if(allsuccess){
$("form").reset;
alert("All your pictures are already uploaded!");
}else{
$("form").reset;
alert("Some error during uploading pictures, you should upload the picture again");
}
予改變的fileList到數組中,然後使用Array.every嘗試確認每個文件已經上傳。但當文件上傳時它總是停止。爲什麼會這樣?以及如何更改它以確認已經上傳的2個或更多文件?
該文件列表是FileList對象。它應該是:FileList {0:File,1:File,length:2,item:function} – user504909
循環終止,因爲if filistlist [3](假定只有兩個元素),它返回undefined並且test爲true或錯誤。該javascript將被視爲虛假。它和你寫的一樣。 – user504909