2016-04-28 11 views
1

アップロードするファイルのサイズに合わせてクライアントを更新する必要があります。これは、youtubeのようなものです。ファイルをアップロードして100%アップロードするまでこれまでアップロードされているコンテンツの量を更新してください。誰かがアップロードしたいファイルのサイズをマルチパートreq.files.myFile.sizeで得ることができることを知っています。それはあなたにファイルのフルサイズを与えます。しかし、ディスク上のファイルの現在のサイズを取得する方法はありますか?ありがとう!Node.js - Multipart:AJAX POSTの進捗状況をXMLHttpRequestで取得する

答えて

1

XHR2のprogressイベントでこれを行うには、here on MDNと記載されています。たとえば:

var xhr = new XMLHttpRequest(); 
xhr.open('POST', '/upload', true); 
xhr.onload = function(e) { ... }; 

// `progress#uploadProgress` looks something like: 
// <progress id="uploadProgress" min="0" max="100" value="0">0%</progress> 
var progressBar = document.querySelector('progress#uploadProgress'); 
// Listen to the upload progress. 
xhr.upload.onprogress = function(e) { 
    if (e.lengthComputable) { 
    progressBar.value = (e.loaded/e.total) * 100; 
    progressBar.textContent = progressBar.value; 
    } 
}; 

var form = new FormData(document.querySelector('form#uploadForm')); 
xhr.send(form); 

これは、あなたの個々のファイルのためしかし全体ではなく、フォームの進捗状況を与えます。

+0

xhrを使ってajax投稿を聞く方法はありますか?私はそれをAjaxでアップロードしなければならないので、進捗状況が表示されます。ありがとうございました! – Jim

+0

私はあなたが何を意味するか分かりません.... xhrは "ajax"です... – mscdex

+0

ああ、それは?私はそれと一緒に働いたことがないと申し訳ありません...そして、ええ。しかし、問題は、console.log(req.files)を実行すると空のオブジェクトが生成されるため、そのことはどうですか? – Jim