[英]how to get the status of file upload in ajax post
用戶使用ajax調用上傳多個文件時單擊“取消”時如何獲取上傳文件的狀態。
這樣我調用ajax請求來上傳文件:
var request = $.ajax({
url: 'files.php',
type: 'POST',
data: data,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
$(".progressbar").show();
},
xhr: function () {
var xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', showProgress, false);
}
return xhr;
},
success: function (data) {
if (percentComplete <= 100) {
$('#pb div').animate({
width: '100%'
}, {
step: function (now) {
$(this).text(Math.round(now) + '%');
},
duration: 10
});
}
$('#uplcomp').append(data);
}
});
如果用戶單擊“取消”按鈕,我會這樣做:
request.abort();
由於上述聲明只是中止了ajax請求,因此我沒有得到任何響應,例如上傳了多少文件,上傳了多少mb等。
誰可以幫我這個事?
我認為您的問題沒有默認的方式。 我要知道的是,您要查找的信息(上傳了多少文件)沒有存儲在XMLHttpRequest對象中。
我想(但從未嘗試過)您可以為其創建某種定制。 高級分析:跟蹤您的上傳進度服務器端。 在您的數據庫中存儲有關上載的一些信息:要處理的文件數量,已處理的文件數量,日期/時間,唯一的上載/會話ID。 當您中止上載或上傳失敗時,您可以基於唯一ID,通過ajax從數據庫中檢索有關上載過程的信息,並將其顯示在UI中。
注意:如果請求已經發送到服務器,那么即使我們中止請求,服務器也將處理該請求,但客戶端不會等待/處理響應。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.