PHPアップロードの進行状況の拡張機能を使用して、Webシステムにアップロードされているファイルに関する情報を取得しています。ただし、2GBを超えるファイルの場合は、合計バイト数と残り時間フィールドが負の数として返されます。PHP拡張アップロードの進行状況 - 残りの総バイト数と残り時間が返される
Apacheは、最大3GBのファイルをWebサイトにアップロードできるように設定されています。私はこれを試して、それは動作します。しかし、それはまさに誤って戻ってくる報告です。
これはPHPの値の制限とそれが何であるかを修正するために何ができるのか不思議でした。私はシステムが64ビット整数を使用していると信じています。私は単純に、拡張機能を呼び出して情報を取得するためにhttp://www.ultramegatech.com/blog/2010/10/create-an-upload-progress-bar-with-php-and-jquery/
:
echo "PHP_INT_MAX: " . PHP_INT_MAX;
// PHP_INT_MAX: 9223372036854775807
ここではどのようプログレスバーの作品やインストールされているにいくつかの追加情報があります:
$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日):https://bugs.php.net/bug.php?id=59918
アップデート(2012年1月16日):拡張機能の開発者は、この問題に関する既存のチケットがあることが指摘対応してきた負の値を取り除くために管理しています拡張によって返されます。しかし、返される数値は、Windowsがプロパティウィンドウに表示しているものと比較して、実際の合計バイト数とは関係ありません。
どのようにファイルサイズを取得して表示していますか? – ManseUK
負の数値は整数往復のように聞こえます。おそらく問題のファイルは2GBに近いかそれを上回っていますか? – hakre
はい、上記の質問に記載されているようにファイルが2GBを超えています。 – diggersworld