PHPのファイルアップロード処理
HTTPアップロードの設定
php.iniの設定
- file_uploads
- HTTPアップロードの有効無効の切り替えを行う。
ファイルサイズの制限設定
php.iniの設定
Apache設定
HTML内の指定
- HTML中のINPUTタグ (
type="hidden" name="MAX_FILE_SIZE" value="*****"
) - ブラウザ側でのアップロードファイルの容量制限に用いる。
- ※ 最近のブラウザではこの指定を無視するものが多い。
パース処理時間の制限設定
その他の時間制限の設定
処理の流れ
Timeout ⇒ max_input_time ⇒ max_execution_time 入力待ち 入力受付け中 処理実行
アップロードファイルの処理手順
- アップロードファイルの情報取得
⇒ オートグローバル変数”$_FILES”により取得。 - アップロードファイルの検証および移動
⇒is_uploaded_file()
により、テンポラリディレクトリに保存されたファイルを検証。
または、move_uploaded_file()
により、任意の恒久的な保存領域へ移動。
cf.- テンポラリディレクトリはupload_tmp_dirディレクティブで指定した場所。
- 一時保存されたファイルのパスは$_FILES['userfile']['tmp_name']で参照可能。
- 処理対象のファイルであるかフィルタリング。
⇒ サイズ、MIMEタイプ、エラーコードなどに基づき分別。 - ファイルの処理