jQuery File Upload 大容量アップロードテストしたら2GBで無限ループに陥ったお話

ファイルをアップロードするシステムをPHPで構築する際、「jQuery File Upload」というライブラリを使い、大容量のファイルを分割アップロードできるようにしようと試みました。
その際、2GB以上のファイルがいつまでもアップロード完了せず、2GBのファイルがいくつも作成されてしまう症状が発生しました。

環境

症状

  • 2GB以上のファイルをアップロードすると、プログレスバーが2GBの位置までくるとリセットされ、アップロード処理が終わらない。
  • アップロードを止めるまで、2GBの同名ファイルがいくつも保存される。

試したこと

  • php.ini のpost_max_size、upload_max_filesize、memory_limit の設定値変更
  • Apacheのconfファイルで LimitRequestBody を0に設定
  • jQuery File Uploadのmain.jsで maxChunkSize と maxFileSize の設定値変更

原因

はっきりとした原因はよくわかっていません…。 インストールしたWindows用のXAMPP 7.2.5が32bitアプリケーションだからなのか、それともfilesize()関数の問題

まとめ

  • XAMPPでは解決できない&今後もいろいろな問題が出てきそうなので、開発環境をDockerで構築して検証してみようと思います。