Я использую jQuery blueimp fileupload и имею другой вывод в firefox/opera в progress
функций и progressall
. Chrome работает нормально, выход в console.log()
100
100
а вывод в FF/Opera:
100
95
Выводит правильные значения:
progress: function(e, data) {
var value;
value = Math.round((data.loaded / data.total) * 100) || 0;
console.log(value);
},
Выводит странные значения:
progressall: function(e, data) {
var value;
value = Math.round((data.loaded / data.total) * 100) || 0;
console.log(value);
},
Btw. это проверено на 1 файл, и он должен давать тот же результат. Проблема также возникает в нескольких файлах, что просто показывает странный общий процент.....
Имел ту же проблему, нашел причину.
Вот содержимое jquery_file_upload\server\php\index.php:
error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');
$upload_handler = new UploadHandler();
С этим сценарием загрузки на стороне сервера → никаких проблем с индикатором выполнения, он достигает 100%.
Проблема возникает со следующим кодом:
error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');
$upload_handler = new UploadHandler();
$var="111";
print_r($var);
print_r ($ var) или любое эхо вызывает проблему с индикатором выполнения...
Таким образом, решение будет: no "echo".
error_reporting(E_ALL | E_STRICT);
require('UploadHandler.php');
$upload_handler = new UploadHandler();
return;
Это работает для кого-то еще?
Эта исправленная моя проблема (это не так) имеет смысл вообще, но она работает... duhh меняя это:
loaded = parseInt(
e.loaded / e.total * (data.chunkSize || total),
10
) + (data.uploadedBytes || 0);
в
loaded = parseInt(
e.loaded / e.loaded * (data.chunkSize || total),
10
) + (data.uploadedBytes || 0);