ホームページ  >  記事  >  バックエンド開発  >  PHP はアップロードされたファイル情報を受け取るためにどのシステム配列を使用しますか?

PHP はアップロードされたファイル情報を受け取るためにどのシステム配列を使用しますか?

WBOY
WBOYオリジナル
2023-05-06 10:43:07730ブラウズ

アップロードされたファイル情報を受け取るために PHP が使用するシステム配列は $_FILES です。

PHP では、写真、ビデオ、その他のファイルのアップロードなど、ファイルのアップロードを処理する必要があることがよくあります。アップロード プロセス中に関連情報とデータを処理するために、PHP はアップロードされたファイル情報を保存する特別なシステム配列 $_FILES を提供します。

$_FILES 変数は、次の構造を持つ 2 次元の連想配列です。

$_FILES = array(
    'file' => array(
        'name' => 'filename.txt',             //文件名
        'type' => 'text/plain',               //文件MIME类型
        'tmp_name' => '/tmp/php/php1h4jCk',   //上传的临时文件名
        'error' => 0,                         //上传的错误代码
        'size' => 123                           //上传文件的大小
   )
);

このうち、配列内の「file」は、次の HTML のようなフォーム要素の名前です。コード:

<form enctype="multipart/form-data" method="POST">
    <input type="file" name="file"/>
</form>

このフォームでは、「file」はフォーム要素の名前です。

$_FILES には、次の特定の情報が保存されます。

  • name: アップロードされたファイル名。
  • type: アップロードされたファイルの MIME タイプ。
  • tmp_name: アップロードされた一時ファイルの名前。サーバー側の一時ディレクトリに保存されます。
  • error: アップロードされたファイルのエラー コード。0 の場合は、アップロードが成功したことを意味します。
  • size: アップロードされたファイルのサイズ。

$_FILES の各フィールドの意味は次のとおりです:

  • name

アップロードされたファイルの元のファイル名。ファイルパス。ファイルのアップロード時にファイル名が変更された場合、この変数には新しいファイル名が格納されます。

  • #type

アップロードされたファイルの MIME タイプ、つまり、text/plain、application/octet-stream などのファイルのコンテンツ タイプ。等

  • tmp_name

アップロードされたファイルの一時ファイル名と一時ファイルを保存するパス。このパスはサーバー側の一時ディレクトリです。

  • error

ファイルのアップロードのエラー コード。アップロードが成功した場合、この値は 0 になります。その他の可能な値は次のとおりです。

- UPLOAD_ERR_OK:文件上传成功。
- UPLOAD_ERR_INI_SIZE:上传的文件超过了php.ini 中 upload_max_filesize 选项限制的值。
- UPLOAD_ERR_FORM_SIZE:上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。
- UPLOAD_ERR_PARTIAL:文件只有部分被上传。
- UPLOAD_ERR_NO_FILE:没有文件被上传。
- UPLOAD_ERR_CANT_WRITE:写入磁盘失败。
- UPLOAD_ERR_EXTENSION:PHP扩展停止文件上传。
  • size

アップロードされたファイルのサイズ (バイト単位)。

$_FILES 変数の使用例:

フォームに画像をアップロードする場合は、次の HTML コードを使用できます:

<form enctype="multipart/form-data" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    <input type="file" name="image" />
    <input type="submit" name="submit" value="Upload Image" />
</form>

サーバー側では、次の PHP コードは、アップロードされたファイルを処理します:

<?php
if(isset($_POST['submit']))
{
    $file = $_FILES['image'];
    $filename = $file['name'];
    $filetmp = $file['tmp_name'];
    $filesize = $file['size'];
    $filetype = $file['type'];

    // TODO: 处理上传文件

    move_uploaded_file($filetmp, "uploads/" . $filename);
}
?>

アップロードされたファイルを処理するとき、送信されたフォームに「送信」フィールドが含まれているかどうかを最初に確認します。これは、フォームを送信せずにアップロードされたファイルが処理されることを避けるためです。 。

最初に $_FILES 変数からファイル情報を取得し、ファイル名、アップロードされたファイルの一時ファイル名、ファイル サイズを保存する変数 $filename、$filetmp、$filesize、$filetype を定義します。 、MIME タイプをそれぞれ指定します。

次に、PHP 関数 move_uploaded_file() 関数を使用して、アップロードされたファイルを一時ディレクトリから、ファイルを保存する指定されたディレクトリ (上の例の "uploads/" ディレクトリなど) に移動します。

概要:

$_FILES は、PHP でファイルのアップロードを処理するためのキー変数です。ファイル名、MIME タイプ、アップロード一時ファイル名、サイズなど、アップロードされたファイルに関するさまざまな情報が含まれています。 。 待って。 $_FILES を使用する場合は、フォーム送信のタイミング、アップロードされたファイルの処理ロジック、アップロードされたファイルの保存方法に注意する必要があります。

以上がPHP はアップロードされたファイル情報を受け取るためにどのシステム配列を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。