ウェピックスではウェブ界の情報をピックアップします!
menu
ホーム > PHPの文法 > 5 変数 > PHP $_FILES(ファイル変数)のすべて!【初心者向け基本】

PHP $_FILES(ファイル変数)のすべて!【初心者向け基本】

Pocket

PHP5 PHP7

$_FILES(ファイルアップロード変数)簡単まとめ

- 1 分ノート ! -

  • $_FILES
    PHPの定義済み変数(=スーパーグローバル変数)の1つ
  • $_FILES
    HTTP POST でアップロードされた値を取得する
    ファイルアップロード変数
  • $_FILES連想配列として使用する
  • $_FILES は、関数やメソッドの内部で使用する場合、
    global $_FILES; とする必要がない

$_FILESの送受信 簡単まとめ

- 1 分ノート ! -

  • $_FILES
    HTTP POST でアップロードされた値を取得する
    ファイルアップロード変数
  • クライアントからサーバーへファイルをアップロードするには、
    HTML の formタグmethod属性POST にする
    HTML の formタグ enctype属性multipart/form-data にする
    HTML の inputタグ type属性file にする
  • $_FILESには、アップロードされたファイルの
    $_FILES[‘指定name’][‘name’]:ファイル名
    $_FILES[‘指定name’][‘type’]:ファイルのMIMEタイプ
    $_FILES[‘指定name’][‘tmp_name’]:一時保存ファイル名
    $_FILES[‘指定name’][‘error’]:アップロード時のエラーコード
    $_FILES[‘指定name’][‘size’]:ファイルサイズ(バイト単位)
    の5種類のデータが格納される


$_FILES(ファイルアップロード変数)とは

POINT

  • $_FILES
    PHPの定義済み変数(=スーパーグローバル変数)の1つ
  • $_FILES
    HTTP POST でアップロードされた値を取得する
    ファイルアップロード変数
  • $_FILES連想配列として使用する
  • $_FILES は、関数やメソッドの内部で使用する場合、
    global $_GET; とする必要がない

$_FILESは、PHPの定義済み変数のファイルアップロード変数です。この変数は、HTTP POST でアップロードされたファイルの値を取得する変数です。

$_FILESは、連想配列で使用します。

$_FILESは、スーパーグローバル変数なので、スクリプトのコード中どこからでも使用することが出来る変数です。関数やメソッドの内部で使用する場合にも global $_FILES; とする必要はありません。


$_FILESはPHPの定義済み変数

$_FILESは、PHPの定義済み変数の内の1つの変数です。PHPには定義済み変数が複数あります。其の中の1つが$_FILESです。
PHPの定義済み変数はスーパーグローバル変数とも言います。
$_FILES = PHPの定義済み変数 = スーパーグローバル変数
また、$_FILES は自動グローバル変数とも呼ばれます。
(PHPには定義済みの定数というものもあります。詳細はこちらを参照下さい。)

PHPの定義済み変数(=スーパーグローバル変数)

$GLOBALS
(グローバル変数)
・グローバルスコープで使用可能なすべての変数への参照
・連想配列として使用
$_SERVER
(サーバー変数)
・サーバ情報および実行時の環境情報
・連想配列として使用
$_GET
(ゲット変数)
・HTTP GET 変数
・連想配列として使用
$_POST
(ポスト変数)
・HTTP POST 変数
・連想配列として使用
$_FILES
(ファイル変数)
・HTTP ファイルアップロード変数
・連想配列として使用
$_REQUEST
(リクエスト変数)
・HTTP リクエスト変数
・連想配列として使用
$_SESSION
(セッション変数)
・セッション変数
・連想配列として使用
$_ENV
(環境変数)
・環境変数
・連想配列として使用
$_COOKIE
(クッキー変数)
・HTTP クッキー
・連想配列として使用

これら、PHPの定義済み変数は、プログラムコード中何処からでも使用することができます。関数の内部でも globalキーワードを使用せず呼び出すことが出来ます。このように、スーパーグローバル変数は非常に便利なものです。
通常、変数には有効範囲などのルールがあります。このルールは、PHPにおいて変数のスコープという宣言の場所とそれによる有効範囲として定められています。スコープには、「グローバルスコープ」「ローカルスコープ」「スタティック変数」「関数の引数」の4種類ありますが、これらすべてのスコープを持っているのがスーパーグローバル変数です。
変数のスコープについてはこちらを参照下さい。

※注意2:
ただし、スーパーグローバル変数は、関数やクラスメソッドの中の 可変変数 として使用することはできません。

可変変数についてはこちらを参照下さい。


$_FILESの送受信

POINT

  • $_FILES
    HTTP POST でアップロードされた値を取得する
    ファイルアップロード変数
  • クライアントからサーバーへファイルをアップロードするには、
    HTML の formタグmethod属性POST にする
    HTML の formタグ enctype属性multipart/form-data にする
    HTML の inputタグ type属性file にする
  • $_FILESには、アップロードされたファイルの
    $_FILES[‘指定name’][‘name’]:ファイル名
    $_FILES[‘指定name’][‘type’]:ファイルのMIMEタイプ
    $_FILES[‘指定name’][‘tmp_name’]:一時保存ファイル名
    $_FILES[‘指定name’][‘error’]:アップロード時のエラーコード
    $_FILES[‘指定name’][‘size’]:ファイルサイズ(バイト単位)
    の5種類のデータが格納される

$_FILESは、HTTP POST メソッドでアップロードされたファイルの値を取得します。

HTTPとは、ウェブブラウザとウェブサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコル(通信方法、通信規約というようなものです)のことです。

HTMLの<form>タグで「method属性をPOST」、「enctype属性をmultipart/form-data」にし、<input>タグで「type属性をfile」で送信されたデータが、HTTP POSTメソッドでアップロードされたファイルデータの変数になります。この変数を$_FILESの連想配列として取得することが出来ます。

$_FILESにはアップロードされたファイルの5種類のデータが格納されます。$_FILESは連想配列で使用しますが、key名に注目してください。

$_FILES['inputで指定したname']['name'] ファイル名
$_FILES['inputで指定したname']['type'] ファイルのMIMEタイプ
$_FILES['inputで指定したname']['tmp_name'] サーバー上で一時的に保存されるテンポラリファイル名
$_FILES['inputで指定したname']['error'] アップロード時のエラーコード
$_FILES['inputで指定したname']['size'] ファイルサイズ(バイト単位)

例えば、input type file の name を uploadfile にして、001.gifという画像ファイルをアップロードした場合、$_FILES を print_r で確認すると以下のようになります。

name、type、tmp_name、error、sizeの5種類の内容が確認できます。また、$_FILESは連想配列として使用するので、各データを取得するには以下のようにします。

以下はファイルをアップロードする簡単なサンプルコードです。files_upload1.php と files_upload2.php の2つのファイルを作成して、以下のコードを記述して下さい。

files_upload1.php

HTMLの <form>タグ で method属性 を POST にし、enctype属性 を multipart/form-data にします。

files_upload2.php

アップロードされたファイルデータを$_FILESで取得します。$_FILESは連想配列として利用します。

結果は


Array ( [name] => 1.jpg [type] => image/jpeg [tmp_name] => /tmp/phpXNO3Hl [error] => 0 [size] => 700818 )


1.jpg
image/jpeg
/tmp/phpXNO3Hl
0
700818

となります。

– サンプル Click Here ! –


サンプルコード

– サンプル Click Here ! –

実行結果
このページに 「uploadfile」という名前で FILES変数 を送信します。

$_FILES[‘uploadfile’]が送信されました。
Array
(
[name] => 1.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpRxukKv
[error] => 0
[size] => 700818
)
1

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2017年3月6日
最終更新日:2017年03月22日

関連記事

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/phpref-files/trackback/