Я думаю, у меня есть решение вашей проблемыЯ не знаю, что стоит за этой функцией «generateRandomData ()»
var data = generateRandomData(currentPayloadId)
Это работает, когда я перехожу на это:
var data = new FormData();
data.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
Небольшое объяснение: вам нужно добавить вручнуюсформировать данные в форме ввода файла, где fileToUpload
равно <input type="file" name="fileToUpload" id="fileToUpload" />
И в вашей функции updateProgress
в IF
части вы можете добавить что-то вроде этого, чтобы отслеживать прогресс console.log(evt.total +" - "+ evt.loaded)
![enter image description here](https://i.stack.imgur.com/YQRZU.png)
Это работает в браузере Google Chrome.Я протестировал в новой версии браузера 57Я сделал для себя форму прогресса загрузки 4 года назад, что означает, что этот код работает и в старой версии браузера.Весь фрагмент кода будет выглядеть следующим образом
function test()
{
req = new XMLHttpRequest();
req.upload.addEventListener("progress", updateProgress, false);
req.addEventListener("readystatechange", updateProgress, false);
req.addEventListener("error", uploadFailed, false);
req.addEventListener("abort", uploadCanceled, false);
//var data = generateRandomData(currentPayloadId);
var data = new FormData();
data.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
totalSize = data.length;
req.open("POST", "www.mydomain.com/upload.aspx");
start = (new Date()).getTime();
req.send(data);
}
function updateProgress(evt)
{
if (evt.lengthComputable) {
total = totalSize = evt.total;
loaded = evt.loaded;
console.log(evt.total +" - "+ evt.loaded)
}
else {
total = loaded = totalSize;
}
}