関数 is_uploaded_file

関数 is_uploaded_file は、指定されたファイルが POSTリクエストを通じてアップロードされたかどうかを確認します。 ファイルを扱う際のセキュリティ上の重要なチェックです。 この関数は1つのパラメータ - チェック対象ファイルへのパス - を受け取り、 ファイルがPOSTを通じてアップロードされた場合は true を返し、 それ以外の場合は false を返します。

構文

phpis_uploaded_file(string $filename): bool

例

フォームを通じてファイルがアップロードされたかどうかを確認します:

php<?php
  if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    echo 'File was uploaded via HTTP POST';
  } else {
    echo 'File was NOT uploaded via HTTP POST';
  }
?>

例

move_uploaded_file との組み合わせでの使用:

php<?php
  $temp_file = $_FILES['userfile']['tmp_name'];
  $target_file = 'uploads/' . $_FILES['userfile']['name'];
  
  if (is_uploaded_file($temp_file)) {
    move_uploaded_file($temp_file, $target_file);
    echo 'file uploaded successfully';
  } else {
    echo 'possible file upload attack';
  }
?>

関連項目

  • 関数 move_uploaded_file,
    アップロードされたファイルを安全に移動します
  • 関数 file_exists,
    ファイルの存在を確認します (アップロードされたもののみではありません)
  • 関数 tmpfile,
    一時ファイルを作成します
  • 関数 is_file,
    ファイルかどうかをチェックします