- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのファイルアップロードについて)
PHPのファイルアップロードについて
このQ&Aのポイント
- PHPのファイルアップロードについての制限について教えてください。
- ファイル容量が大きい場合にアップロードできない現象が発生しています。
- ApacheやPHPの設定に制限がかかっているのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
追加で。 php.iniのmax_execution_time。300秒くらいにしてみるとか。 設定変更後、Apacheを再起動したか。 アップロード失敗時のログファイルの確認。
その他の回答 (1)
- honoka-cha
- ベストアンサー率54% (40/73)
回答No.1
すでに調査済みのものと重複するかもしれませんが、私なら試してみることを考えてみました。 1. ApacheのLimitRequestBodyを確認。他者からの攻撃を避けるためこの値を絞っていることがあります 2. php.iniのmemory_limitを大きくしてみる 3. HTMLのMAX_FILE_SIZEを大きな値にしてみる(クライアント側の問題) 4. いろいろなブラウザの種類、ブラウザのいろいろなバージョンで試してみる(クライアント側の問題) 5. cakePHPだと失敗するのかそれとも生のPHPでも失敗するのか 6. アップロードを手助けしてくれるcakePHPのプラグインを試してみる 7. アップロードファイルをDBに格納してる処理はあるか。もしかしてDBの制限とか 8. なんだかんだでうまくいかないなら最終的には大きなファイルを分割してアップロードしてサーバーでくっつける(クライアントとサーバーの連携)
補足
ご教授ありがとうございます。 ご指示いただいた一点HTMLのhidden属性にマックスサイズというのを指定してみました。 すると、前回よりも大きな28MB程のサイズまでアップすることができました。。。。が やはりそれ以上大きなサイズをアップするとBadRequestになるようです。 ただ面白いことにファイヤーフォックスでは、BadRequestがでるものの Operaでは最大81MBのファイルがアップできてました。 ほかクロームでも同様に81MBのファイルはアップできました。 問題はFFだけなのですが・・・。 少なくともFF・Operaブラウザでの動作は保障したいのです。 他に何か改善作はあるでしょうか? ちなみに、生のPHPでもCakeでも同じようにFFだと、大容量のファイルはアップできないようです。 ちなみにアップ時の処理はべたにmove_uploaded_fileでテンポラリディレクトリから、htodocs内の任意のディレクトリに移動するという手段をとっています。 http_requestの類でやったほうがいいんですかね・・・・。