• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpで巨大なファイルをアップロード)

phpで巨大なファイルをアップロードする方法

このQ&Aのポイント
  • PHP・Apacheを使用して大きな容量のファイルをアップロードする方法について解説します。
  • php.iniで必要な設定を行い、サーバーの容量制限を解除することで、1GB以上のファイルをアップロードすることが可能です。
  • 本記事では、具体的な設定方法と注意点について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

アップロードの失敗は $_FILES['file']['error']の値を取得して判断します。 http://www.php.net/manual/ja/features.file-upload.errors.php 例1のサンプルコード参照

rihm
質問者

お礼

回答ありがとうございます。 アップロードの失敗の捕捉はerror_logファイルには書き込まれないんですかね。 そちらで確認していました。 サンプルコードを参考にしてエラーメッセージの確認をしたいと思います。

rihm
質問者

補足

$_FILES['file']['error']でエラーメッセージを取得しました。 "0"が返ってきたのでアップロードは成功しているということだと思います。 ですがやはりアップロード先をみると160KBほどのサイズになってしまっています。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

うーん、なんといえませんがhttp.confに以下記載して httpdをrestartしてみてはいかがでしょうか? (私の備忘録には500K制限的なメモが残っていました) <Files *.php> LimitRequestBody 0 </Files>

rihm
質問者

お礼

すみません、アップロードは正常にできていました。 単純にプログラムのミスで、アップロードファイルが大きい場合は圧縮するように コードを書いていたのですがそのコードに誤りがあったみたいです。 その部分を外して再度アップロードしてみると1.2GBのデータが格納されていました。 ご迷惑をおかけしました。 回答ありがとうございました。

rihm
質問者

補足

回答ありがとうございます。 httpd.confに上記の内容を記載して再起動後にアップロードしてみましたが状況はかわらずでした。 $_FILES['file']['error']は0、move_uploaded_fileもTRUEでした。 $_FILES['file']['size']にも1.2GBのサイズが入っていたのでアップロードまではできているということなんでしょうか?

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

バージョンにもよると思いますがapacheのLimitRequestBodyは設定していますか?

rihm
質問者

補足

回答ありがとうございます。 phpとApacheのバージョンを書き忘れていました。 phpは5.3.18、Apacheは2.2.3です。 LimitRequestBodyは設定していません。 これは設定していなければ無制限とマニュアルには書いていましたが記載しないといけないのでしょうか?

関連するQ&A