is_uploaded_file
(PHP 4 >= 4.0.3, PHP 5, PHP 7)
is_uploaded_file — HTTP POST でアップロードされたファイルかどうかを調べる
説明
is_uploaded_file
( string $filename
) : bool
filename
という名前のファイルが HTTP POST
によりアップロードされたものである場合に true
を返します。
悪意のあるユーザーがスクリプトをだまして、
本来見られてはいけないはずのファイル
(/etc/passwd
など)
にアクセスすることを防止したい場合に、この関数は有用です。
この種の確認は、アップロードされたファイルに関して何でもできる場合には、 その内容をユーザー、または同じシステム上の他のユーザーにさえ 暴かれる可能性があるため、特に重要です。
適切に動作させるため、関数 is_uploaded_file()
は $_FILES['userfile']['tmp_name']
のような引数を必要とします。
アップロードされたファイルのクライアントマシン上での名前
$_FILES['userfile']['name']
では動作しません。
パラメータ
filename
- 調べたいファイル名。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
例
例1 is_uploaded_file() の例
<?phpif (is_uploaded_file($_FILES['userfile']['tmp_name'])) { echo "ファイル ". $_FILES['userfile']['name'] ." のアップロードに成功しました。\n"; echo "その中身を表示します\n"; readfile($_FILES['userfile']['tmp_name']);} else { echo "おそらく何らかの攻撃を受けました。"; echo "ファイル名 '". $_FILES['userfile']['tmp_name'] . "'.";}?>