PHP расширение upload progress - возвращает отрицательные значения общего количества байт и оставшегося времени

Я использую расширение PHP upload progress для получения информации о файлах, загружаемых в мою веб-систему. Однако для файлов размером более 2 ГБ поля total bytes и time remaining возвращаются в виде отрицательных чисел.

Apache был настроен таким образом, что файлы размером до 3 ГБ могут быть загружены на сайт. Я протестировал это и все работает. Однако это только отчетность, которая возвращается неправильно.

Мне интересно, связано ли это с ограничением на значения PHP и что можно сделать, чтобы это исправить. Я полагаю, что система использует 64-битные целые числа. Как показано ниже:

echo "PHP_INT_MAX: " . PHP_INT_MAX;
// PHP_INT_MAX: 9223372036854775807

Вот некоторая дополнительная информация о том, как работает и устанавливается прогресс-бар: http://www.ultramegatech.com/blog/2010/10/create-an-upload-progress-bar-with-php-and-jquery/

Чтобы получить информацию, я просто вызываю функцию расширения:

$status = uploadprogress_get_info($unique_form_id);

Которая возвращает общее количество байт, оставшееся время, текущее количество байт и многое другое, как показано ниже (при отрицательном общем количестве байт):

array(11) { 
    ["upload_id"]=> string(32) "ec75a30c24177ec1579aea93b56224f2" 
    ["fieldname"]=> string(9) "comp_data" 
    ["filename"]=> string(15) "Size_2-09GB.zip"
    ["time_start"]=> string(10) "1325851749"
    ["time_last"]=> string(10) "1325851758"
    ["speed_average"]=> string(5) "93011"
    ["speed_last"]=> string(6) "112618"
    ["bytes_uploaded"]=> string(6) "837105" 
    ["bytes_total"]=> string(11) "-2048166056" 
    ["files_uploaded"]=> string(1) "1" 
    ["est_sec"]=> string(9) "-76260228" 
} 

Обновление (6 января 2012): Я также связался с разработчиком этого расширения, чтобы узнать, могут ли они поделиться какой-либо информацией.

Обновление (9 января 2012 г.): Разработчик расширения ответил, указав, что существует существующий тикет по этому вопросу: https://bugs.php.net/bug.php?id=59918

Обновление (16 января 2012): Удалось избавиться от отрицательного значения, возвращаемого расширением. Однако возвращаемое число значительно отличается от фактического количества байт по сравнению с тем, что Windows указывает в окне свойств.

7
задан diggersworld 16 January 2012 в 12:58
поделиться