PHPでファイルがアップロードできない

この記事は約2分で読めます。
スポンサーリンク

まれによく遭遇する現象
該当PHPファイルに記述や、php.iniや.htaccessを変更して対応する。

原因1.設定されているメモリが足りない
処理するメモリの設定が少ない場合はエラーをはいてアップロードができない。
対策:memory_limitの値を変更する

原因2.POSTデータに許可される最大サイズが足りない
POSTのデータ容量が大きいとこれに引っかかることがある。特に画像など送信時。
対策:post_max_sizeの値を変更する
この値は必然的にmemory_limitより少なくなければならない。
送信したデータはメモリにて処理されるため。

原因3.アップロードされるファイルの最大サイズの容量がオーバーした
1つのファイルの限界サイズを超えるとこのエラーになる。
対策:upload_max_filesizeの値を変更する
この値は必然的にpost_max_sizeより少なくなければならない。
例えば2ファイル送信した場合はこの値の2倍の容量のpost_max_sizeを指定しなければ、ファイルが送信できない。

原因4.同時にアップロードできるファイルの最大数を超えた
特にエラーはでてないけれど、ファイルが全て送信されていない。データの数が合わない。
対策:max_file_uploadsの値を変更する

なお、これらの設定はphpinfoで表示できるので、それで確認することが可能。

php.iniで設定する場合
値 = 数値
例えば
memory_limit = 128M
と記述する。

.htaccessなら
php_value 値 数値
例えば
php_value memory_limit 16M

php中なら
ini_set(‘値’, ‘数値’);
例えば
ini_set(‘memory_limit’, ‘128M’);

コメント

タイトルとURLをコピーしました