ファイルアップロードの上限

2007/01/04 | apache

PHPでファイルをアップロードする場合は、いくつか設定で気をつけておくべき箇所がある。それは以下の4つの設定だ。

file_uploads(PHPでファイルアップロードできるようにするかどうか)
memory_limit(PHPが使用することのできるメモリの上限)
post_max_size(PHPがpostによって受け取ることのできる容量の上限)
upload_max_filesize(PHPが処理できるアップロードファイルの上限)

まずファイルのアップロードがまったくできない場合は1つ目のfile_uploadsが正しく設定されているかどうかチェック。Offとかだともちろんアップロードできない。
次にファイルサイズが大きいとアップできない場合は残りの3つの設定をチェックする。上記の設定はそれぞれ以下の関係を守る必要がある。

memory_limit > post_max_size > upload_max_filesize

しかし、これらを正しく設定してもまだアップロードができない場合がある。それはapacheの設定だ。apacheの設定で以下のようなディレクティブがある。

LimitRequestBody

ここでアップロードで使用できる(純粋にはファイルだけではないが)ファイルの容量の上限が記述されていることがある。もちろんPHPでいくら設定しても、apacheではじかれてしまっては元も子もない。
この設定もチェックしよう。

なおそれぞれのチェックはphp.iniやhttpd.confを見ればだいたいいいのだが、PHPの場合は/etc/php.d/の中のファイル、/etc/httpd/conf.d/の中のファイルなどもチェックしておく必要がある可能性がある(設定ファイルを分散して設置することができるから)。
ファイル名やファイルへのパスは各自の環境に合わせる必要があることは言うまでもない。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net