2017-02-15 10 views
0

こんにちは、2ファイル以上をアップロードしようとしていますが、私の問題はプログレスバーが小さいファイルが最初にアップロードされたため100%大きなファイル..私の質問は、私は多くのファイルがアップロードされている場合私は同じ進歩を持つことができますか?2つ以上のファイルをアップロードするときの進捗状況

for (var i = 0, f; f = files.files[i]; i++) { 

$.ajax({ 

    xhr: function(){ 
     //upload Progress 
     var xhr = $.ajaxSettings.xhr(); 
     if (xhr.upload) { 
      xhr.upload.addEventListener('progress', function(event) { 
       var percent = 0; 
       var position = event.loaded || event.position; 
       var total = event.total; 
       if (event.lengthComputable) { 
        percent = Math.ceil(position/total * 100); 
       } 
       //update progressbar 
       $('.bar').width(percent + '%'); 
      }, true); 
     } 
     return xhr; 
    }, 
       url: 'https://content.dropboxapi.com/2/files/upload', 
       type: 'post', 
       data: f, 
       processData: false, 
       contentType: 'application/octet-stream', 
       headers: { 
         "Authorization": "Bearer ACCESS TOKEN", 
         "Dropbox-API-Arg": '{"path": "/'+f.name+'", "mode": "add","autorename": true,"mute": false}' 
         }, 
       success: function (data) { 
       console.log(data); 
       app.alert.show('success-message', { 
       level: 'success', 
        messages: 'your file has been upload to Dropbox', 
       autoClose: true 
        }); 
       }, 
       error: function (data) { 
       console.log(data); 
       } 
       }) 

       } 
+0

各ファイルを個別にajaxingしているので、それぞれにプログレスバーが必要です – madalinivascu

+0

1つの進捗バーしかありませんが、すべてのファイルのアップロードを読むことができますか? – VLR

+0

はい、すべてのファイルの合計サイズを計算する必要があります – madalinivascu

答えて

0

は、私はあなたが別の変数(または多分変数の配列)内の各ファイルの進行状況を保存し、このVARSが変更されたときにプログレスバーの幅を更新すること、関数を記述するべきだと思います。

関連する問題