簡體   English   中英

如何獲取ajax發布中文件上傳的狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM