File upload limit in php

Facebooktwittermail

phpアプリケーションのファイルアップロード制限に関する資料

php
http://www.php.net/

PHP マニュアル
http://jp2.php.net/manual/ja/index.php

php.ini ディレクティブのリスト
http://jp2.php.net/manual/ja/ini.list.php

ファイルのアップロードを制限する
http://www.atmarkit.co.jp/ait/articles/1201/30/news132.html

なるほどね


CentoOSでは /etc/php.iniで設定するがシステム全体に影響を及ぼすので.htaccessで記述するほうがスマートらしい

アップロード関連ディレクティブのデフォルト設定

; Maximum execution time of each script, in seconds
; http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
max_execution_time = 30

; Whether to allow HTTP file uploads.
; http://www.php.net/manual/en/ini.core.php#ini.file-uploads
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; http://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir
;upload_tmp_dir =

; Maximum size of POST data that PHP will accept.
; http://www.php.net/manual/en/ini.core.php#ini.post-max-size
post_max_size = 8M

; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 2M

; Maximum amount of memory a script may consume (128MB)
; http://www.php.net/manual/en/ini.core.php#ini.memory-limit
memory_limit = 128M

ここで注意なのがファイルのアップロードを制限するにも書いてあるようにupload_max_filesize値はpost_max_size値の制限を受けるってことですね

memory_limit >= post_max_size >= upload_max_filesize
http://www.php.net/manual/ja/ini.core.php#ini.post-max-size

.htaccessの記述方法はこんな感じでした

php_value max_execution_time 120
php_value memory_limit 256M
php_value post_max_size 30M
php_value upload_max_filesize 30M

設定した後はhttpdを再起動します

.htaccessを有効にするためにAllowOverride Allも忘れずに

Leave a Reply