ユーザーが使用しているパソコン上のファイルを、
サーバーに送信(アップロード)することができます。
ファイルをアップロードするためにフォーム部品を使います。
<input>タグのtype属性を"file"と指定します。
これにより、ファイルを選択するための参照ボタンを
表示することができます。
<input type="file" value="値">
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title>ファイルを送信してみる</title> <link rel="stylesheet" href="../style.css"> </head> <body> <form enctype="multipart/form-data" action="" method="post"> ファイル:<input type="file" name="myfile"><br> <input type="submit" value="送信"> </form> <?php //ファイルが送信され、一時にファイルに値が格納されたか否か if( isset( $_FILES["myfile"]["tmp_name"]) ){ $fileName = "./upload_" . $_FILES["myfile"]["name"]; if( move_uploaded_file($_FILES["myfile"]["tmp_name"], $fileName )){ echo "送信完了<br>"; }else{ echo "送信失敗<br>"; } } ?> </body> </html> |
ユーザーがファイルを選択して送信ボタンを押し、
ファイルがアップロードされると、$_FILES[名前]["tmp_name"]に
一時的なファイル名が格納されます。ここでの「名前」は、
ファイルボタンの「name」属性に指定した値で、myfileです。
ファイルがアップロードされたら、この一時ファイル名を
元に名前に「upload_」をつけて保存します。
move_uploaded_file()関数は、一時ファイルを指定した名前で
保存します。$_FILES[名前]["name"]には、
送信された元ファイル名が格納されています。
今回は、s何ぷるコードと同じディレクトリにファイルが保存されます。
$_FILESには、以下のようにキーと値の組合せが
格納されているので知っておくと便利です。
キー | 値 |
---|---|
$_FILES[名前]["name"] | ユーザー側のファイル名 |
$_FILES[名前]["type"] | ファイルのタイプ |
$_FILES[名前]["size"] | ファイルのサイズ |
$_FILES[名前]["tmp_name"] | アップロード時の一時的なファイル名 |
フォーム上kらファイルをアップロードすることができます。