PHP ファイルアップロード時に発生する問題



PHPでファイルアップロードする時に上手くあがらない、画面が白くなるなどの問題が発生することがあります。
そんな時の対策方法はこちら。

php.iniの変更

php.iniの設定をいじらないといけません。

upload_max_filesize

php.iniの「upload_max_filesize」を変更してください。
ただし、変更する際に注意が必要で「memory_limit」でPHPの最大メモリ数を変更する必要があります。
「post_max_size」も変更しないとファイルアップ時にファイルをPOSTする時点で止まってしまうので注意してください。
memory_limit > post_max_size > upload_max_filesizeとなるような値に設定してください。
この時に一緒にしてしまうと、複数人が大量にファイルをアップするとPHPのメモリオーバーで止まってしまうので注意してください。

ファイル制限を行う

私は使ったことがありませんが、以下のようにやるとファイルの制限がかかるようです。
<!-- データのエンコード方式である enctype は、必ず以下のようにしなければなりません -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE は、必ず "file" input フィールドより前になければなりません -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- input 要素の name 属性の値が、$_FILES 配列のキーになります -->
    このファイルをアップロード: <input name="userfile" type="file" />
    <input type="submit" value="ファイルを送信" />
</form>

バージョンが違う場合、php.ini等での対応も違いますので後はマニュアルをよく読み込んでみてください。
POST メソッドによるアップロード


コメントを残す