2012-01-06 2 views
7

PHP 업로드 진행 확장 프로그램을 사용하여 웹 시스템에 업로드되는 파일에 대한 정보를 검색합니다. 그러나 2GB보다 큰 파일의 경우 총 바이트 및 남은 필드는 음수로 반환됩니다.PHP 확장 업로드 진행 - 남은 총 바이트 및 남은 시간을 반환합니다.

Apache는 최대 3GB 크기의 파일을 웹 사이트에 업로드 할 수 있도록 설정되었습니다. 나는 이것을 시험해 보았고 효과가있다. 그러나 그것은 잘못보고 된 순전히보고입니다.

이것이 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" 
} 

업데이트 (2012 년 1 월 6 일) :이 확장 프로그램 개발자에게 연락하여 의견을 공유 할 수 있는지 확인하기도했습니다.

업데이트 (2012 1월 9일) : (2012 1월 16일) https://bugs.php.net/bug.php?id=59918

업데이트 : 확장의 개발자가이 문제에 관한 기존의 티켓이 있음을 지적 대응하고 음의 값을 제거하는 관리가 확장에 의해 반환됩니다. 그러나 리턴 된 숫자는 Windows가 속성 창에 표시 한 것과 비교하여 실제 총 바이트 수를 의미합니다.

+1

파일 크기가 어떻게 표시되고 있습니까? – ManseUK

+1

음수는 정수 왕복과 비슷하게 들립니다. 문제의 파일이 2GB에 가깝거나 그 이상입니까? – hakre

+0

예 위의 질문에서 언급 한 파일이 2GB를 초과합니다. – diggersworld

답변

2

진수를 float를 사용하여 제거 -이 이러한 큰 숫자 작동합니다 how to have 64 bit integer on PHP?

참고 :가 있지만

$filesize = filesize($large_file); 
printf(Filesize: %.0f\n", $filesize); 

이 답변은 당신이 64 비트 정수를 사용하는 경우 확인합니다 Windows에서 64 비트 정수를 사용할 수 없다는 것을 나타내는 질문에 대한 또 다른 대답 - 어떤 OS를 사용하고 있습니까?

+0

당신이 제공 한 링크로 내 int를 확인했습니다 ... 그들은 64 비트를 사용하고 있습니다. 이 질문에 추가했습니다. 나는 PHP 확장 기능을 제공한다. – diggersworld

관련 문제