PHPリファレンス(逆引き)

PHPリファレンス
 
ファイルをアップロードする( $_FILES,@move_uploaded_file() )
スポンサードリンク

ファイルをアップロードするには、変数「$_FILE」と@move_uploaded_file()関数を使用します。

変数「$_FILE」には、アップロードされたファイル情報が連想配列で格納されます。
項目 説明
$_FILE[ パラメータ名 ][ name ] アップロードファイル名
$_FILE[ パラメータ名 ][ type ] MIMEタイプ
$_FILE[ パラメータ名 ][ size ] アップロードされたファイルサイズ
$_FILE[ パラメータ名 ][ tmp_name ] テンポラリファイル名。アップロードされたファイルが一時的に保存されたファイルパス
$_FILE[ パラメータ名 ][ error ] エラーコード。正常にアップロードされたらゼロになります。
 「パラメータ名」は、フォームのHTMLタグ<input type="file" name="パラメータ名">で 指定された名称です。


アップロードされたファイルは、テンポラリファイルとして$_FILE[ パラメータ名 ][ tmp_name ]に、一時的に格納されますが、PHPスクリプト終了と同時に削除されます。その為、テンポラリファイルを@move_uploaded_file()関数を使用して正式な格納場所にコピーする必要があります。
@move_uploaded_file( テンポラリファイル名 ,
              出力ファイル名)
アップロードされたテンポラリファイルを、出力ファイル名で指定されたパスにコピーします。

正常終了すれば、TRUEを、異常の場合はFALSEを返します

●アップロードファイルの最大サイズを制限する
 php.iniの「upload_max_filesize」ディレクティブと「post_max_size」ディレクティブを超えるサイズのファイルはアップロードできません。このサイズを超えてアップロードすると、変数「$_FILE」にはNULLがセットされます。

●フォームでアップロードファイルを指定しない場合
 $_FILE[ パラメータ名 ][ size ]にゼロがセット、$_FILE[ パラメータ名 ][ error ]には「4」がセットされます。


スポンサードリンク


例1) ファイルをアップロードする。
 (1) フォームでアップロードファイルを指定しパラメータ名「file_data1」でアップロードする。
 「test_01.php」

<html>
<body>

<form enctype="multipart/form-data" action = "test_02.php" method = "post" >
<input type="file" name="file_data1">

<input type="submit" name="FILE送信" value="FILE送信">
</form>

</body>
</html>


 フォームの「enctype」には、"multipart/form-data"を指定します。

 (2) アップロードされたファイルをパラメータ名「file_data1」で取得し、アップロードファイル情報を表示した後、アップロードファイルされたテンポラリファイルをファイル格納パスにコピーする。
 「test_02.php」

<html>
<body>

<?php

// アップロードファイル情報を表示する。
echo "アップロードファイル名 : " , $_FILES["file_data1"]["name"] , "<BR>";
echo "MIMEタイプ : " , $_FILES["file_data1"]["type"] , "<BR>";
echo "ファイルサイズ : " , $_FILES["file_data1"]["size"] , "<BR>";
echo "テンポラリファイル名 : " , $_FILES["file_data1"]["tmp_name"] , "<BR>";
echo "エラーコード : " , $_FILES["file_data1"]["error"] , "<BR>";

// アップロードファイルを格納するファイルパスを指定
$filename = "c:\\tmp\\" . $_FILES["file_data1"]["name"];

if ( $_FILES["file_data1"]["size"] === 0 ) {
 echo "ファイルはアップロードされてません!! アップロードファイルを指定してください。";
} else {

 // アップロードファイルされたテンポラリファイルをファイル格納パスにコピーする
 $result = @move_uploaded_file( $_FILES["file_data1"]["tmp_name"], $filename);
 if ( $result === true ) {
  echo "アップロード成功!!";
 } else {
  echo "アップロード失敗!!";
 }

}

?>

</body>
</html>


スポンサード リンク


ファイルをアップロードする( $_FILES、@move_uploaded_file() )
アップロードされたファイルか確認する( is_uploaded_file() )
クライアントから接続が切断されてもPHPスクリプトを続行する( ignore_user_abort、ignore_user_abort() )
PHPスクリプト終了時の実行関数を登録( register_shutdown_function() )
IPアドレスからホスト名を取得する( gethostbyaddr() )
ホスト名からIPアドレスを取得する( gethostbyname()、gethostbynamel() )

WEBへ
忘れっぽいエンジニアのPHPリファレンス TOPへ