Node.js – Multipart:XMLHttpRequest获取AJAX POST的进度

我必须更新客户端上传的文件的大小,类似于youtube的做法:上传一个文件,直到100%上传为止,您将获得上传到目前为止已上传文件的更新。 我知道你可以通过多部分req.files.myFile.size获得想要上传的文件的大小,并且会给你文件的全部大小。 但有没有办法获得磁盘上的文件的当前大小? 谢谢你!

您可以使用MDN上logging的XHR2 progress事件来做到这一点。 例如:

 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); 

这会给你整个表单的进度,但不是单个文件。