ホームページ  >  記事  >  バックエンド開発  >  PHPスーパーグローバル変数の$_FILESの詳細説明

PHPスーパーグローバル変数の$_FILESの詳細説明

藏色散人
藏色散人転載
2020-01-27 15:20:163931ブラウズ

PHPスーパーグローバル変数の$_FILESの詳細説明

$_FILES - HTTP POST 経由で現在のスクリプトにアップロードされたアイテムの配列。

ファイル フィールド名 = 'userfile' をアップロードすると、$_FILES 配列には次が含まれます:

$_FILES['userfile']['name']      //客户端机器文件的原名称。
$_FILES['userfile']['type']     //文件的 MIME 类型,如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查,因此不要想当然认为有这个值。
$_FILES['userfile']['size']     //已上传文件的大小,单位为字节。
$_FILES['userfile']['tmp_name']   //文件被上传后在服务端储存的临时文件名。
$_FILES['userfile']['error']      //和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。
/**

エラー コードは次のとおりです:

UPLOAD_ERR_OK

値は 0 で、エラーは発生せず、ファイルは正常にアップロードされます。

UPLOAD_ERR_INI_SIZE

値は 1 で、アップロードされたファイルは php.ini の Upload_max_filesize オプションで制限された値を超えています。

UPLOAD_ERR_FORM_SIZE

値は 2 で、アップロードされたファイルのサイズは HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。

例: フォームに隠しフィールドを追加します。値の単位はバイトです。

<form enctype="multipart/form-data" action="test.php" method="POST">
  <!-- MAX_FILE_SIZE must precede the file input field -->
  <input type="hidden" name="MAX_FILE_SIZE" value="12" />
  <!-- Name of input element determines name in $_FILES array -->
  Send this file: <input name="userfile" type="file" />
  <input type="submit" value="Send File" />
</form>

UPLOAD_ERR_PARTIAL

値は次のとおりです。 3. ファイルの一部のみがアップロードされます。

UPLOAD_ERR_NO_FILE

値は 4 ですが、ファイルはアップロードされませんでした。

UPLOAD_ERR_NO_TMP_DIR

値は 6 ですが、一時フォルダーが見つかりません。 PHP 4.3.10 および PHP 5.0.3 で導入されました。

UPLOAD_ERR_CANT_WRITE

値は 7 で、ファイルの書き込みに失敗しました。 PHP 5.1.0で導入されました。

ファイルがアップロードされると、php.ini の Upload_tmp_dir が別のパスに設定されていない限り、デフォルトでサーバーのデフォルトの一時ディレクトリに保存されます。サーバー側のデフォルトの一時ディレクトリは、PHP 実行環境の環境変数 TMPDIR を変更することでリセットできますが、PHP スクリプト内で putenv() 関数を実行して設定しても効果はありません。この環境変数は、アップロードされたファイルに対して他の操作も実行されていることを確認するために使用することもできます。

ファイルのアップロードに使用できるその他の関数:

is_uploaded_file:

is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的
is_uploaded_file ( string $filename ) : bool

パラメータ: filename - チェックするファイル名。

戻り値: 成功した場合は TRUE、失敗した場合は FALSE。

filename で指定されたファイルが HTTP POST 経由でアップロードされた場合は TRUE を返します。これを使用すると、悪意のあるユーザーがスクリプトをだまして、/etc/passwd などの本来アクセスできないファイルにアクセスできないようにすることができます。

move_uploaded_file:

move_uploaded_file — 将上传的文件移动到新位置
move_uploaded_file ( string $filename , string $destination ) : bool

パラメータ: filename アップロードされたファイルのファイル名、destination はファイルをこの場所 (絶対パス) に移動します

This関数チェック そして、filename で指定されたファイルが正当なアップロード ファイル (つまり、PHP の HTTP POST アップロード メカニズムを通じてアップロードされたファイル) であることを確認します。ファイルが正当な場合は、宛先で指定されたファイルに移動されます。

関連する php の知識については、php チュートリアル をご覧ください。

以上がPHPスーパーグローバル変数の$_FILESの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。