3
我試圖上傳一個文件塊(使用HTML5 File API,slice和XmlHttpRequest2),並向用戶報告進度。XmlHttpRequest上傳進度事件只會一次或太早
問題我已經發現進度事件通常幾乎立即觸發(即使塊大小爲5MB),'loaded'值等於塊的大小。當然,大塊上傳可能需要30秒,在此期間用戶沒有任何反饋。
下面的代碼是否有人可以幫忙嗎?我已經幾乎從字面上撕裂我的頭髮在這個一個,但無法找到任何人誰遇到同樣的問題...
var startPosition = (partNumber - 1) * PART_SIZE;
var blob;
if (typeof fileUpload.File.slice != "undefined")
{
blob = fileUpload.File.slice(startPosition, startPosition + contentLength);
}
else
{
if (typeof fileUpload.File.webkitSlice != "undefined")
blob = fileUpload.File.webkitSlice(startPosition, startPosition + contentLength);
if (typeof fileUpload.File.mozSlice != "undefined")
blob = fileUpload.File.mozSlice(startPosition, startPosition + contentLength);
}
fileUpload.PartNumber = partNumber;
var xhr = new XMLHttpRequest();
// Add event listener for progress
xhr.upload.onprogress = function (event)
{
log.debug("progress " + event.loaded);
if (event.lengthComputable)
UpdateProgress(fileUpload, event.loaded);
};
xhr.open("PUT", url, true);
xhr.setRequestHeader('authorization', result);
// Make the request an HTTP PUT
log.debug('Sending PUT request to ' + url);
xhr.send(blob);
忘了提及我在Google Chrome中看到這個 – Ieuan