0

Resumable.jsライブラリを使用して1MBのチャンクでファイルをアップロードし、32ビットLinuxサーバー(PHP 5.3.14、Apache 2.0)でPHPを使用してそれらをつなぎ合わせています。

これは、2GBを超えるファイルを除いて、うまく機能しています。

2GBを超えるファイルをアップロードすると、正常に機能しているように見えますが、実際にファイルのプロパティを表示すると、サイズは常に2147483648バイトになります。

私の読書から、これはPHPによる32ビット整数の使用の制限であると理解しています。

CFLAGS = "-D_FILE_OFFSET_BITS = 64"フラグを設定してPHPを再コンパイルすると、PHPが2GBを超えるファイルを開くことができるようになることを読みました。

私の質問は、これを行うと、これで問題が解決するのでしょうか、それともファイルを開くだけでなく、ファイルを追加するのでしょうか。

これで2GBの問題が解決する場合でも、(より高い)理論上の最大ファイルサイズはありますか?

私が完全にベースから外れていて、このフラグで問題が解決しない場合、64ビットサーバーに切り替える以外に他の解決策はありますか?

4

1 に答える 1

1

32ビットマシン上のLinuxによる2GBのファイルサイズ制限で立ち往生しています(http://linuxmafia.com/faq/VALinux-kb/2gb-filesize-limit.htmlを参照)。

ファイル全体をより小さなサイズのチャンクに分割することを検討するか、64ビットマシンを入手することをお勧めします。通常、GBを超えるファイルは、パフォーマンスの目的で、チャンクの実装よりも多くのシステムで回避されます。

于 2012-07-26T20:07:28.477 に答える