jQuery File Upload 大容量アップロードテストしたら2GBで無限ループに陥ったお話
ファイルをアップロードするシステムをPHPで構築する際、「jQuery File Upload」というライブラリを使い、大容量のファイルを分割アップロードできるようにしようと試みました。
その際、2GB以上のファイルがいつまでもアップロード完了せず、2GBのファイルがいくつも作成されてしまう症状が発生しました。
環境
- Windows 10 64bit
- XAMPP 7.2.5
- jQuery File Upload
症状
- 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で構築して検証してみようと思います。