move_uploaded_fileを使いこなしてPHPでファイルアップロードを行う
PHPでファイルをアップロードする際の概念を考えましょう。ファイルのアップロードは、次のイメージで遷移していきます。
PHPのファイルアップロードイメージ
■>PHPでファイルをアップロードする方法
ファイルをアップロードするためには、HTMLとPHPのファイルを準備します。
・imgsend.html
<html>
<head>
<meta content=”text/html; charset=utf-8″ http-equiv=”Content-Type”>
<title>無題 1</title>
</head>
<body>
<form name=”form” method=”post” enctype=”multipart/form-data” action=”imgsend.php”>
<input name=”File1″ type=”file”>
<input name=”Submit1″ type=”submit” value=”submit” />
</form>
</body>
</html>
・imgsend.php
//解説?
$img_name = $_FILES[“File1”][“name”];
$img_size = $_FILES[“File1”][“size”];
$img_type = $_FILES[“File1”][“type”];
$img_tmp = $_FILES[“File1”][“tmp_name”];
//解説?
list($file_name,$file_type) = explode(“.”,$img_name);
//解説?
$dateformat=date(“YmdHis”);
//解説?
$upforder = “ファイルをアップロードしたいフォルダーのパス”;
//解説?
$uploadfile = “$upforder$dateformat.$file_type”;
//解説?
print $uploadfile;
//解説?
move_uploaded_file( $img_tmp, $uploadfile);
?>
上記のファイルを作成してください。
imgsend.htmlでファイルを選択し、Submitボタンをクリックすると画面が遷移し、imgsend.phpで指定した先のフォルダーにリネームされて保存されます。
それでは、それぞれの構文の意味を見ていきましょう。
■解説
・//解説?
$_FILES関数で、HTMLで選択されたファイルの情報を取得しています。
ここでは、ファイル名、容量、ファイル種類、一時保管ファイル名を取得しています。
・//解説?
list関数で変数をそれぞれ代入します。代入する値はexplode関数で作成しています。解説?で取得したファイル名を引数”.”で分割しそれぞれの変数に代入しています。
<例> test.jpg → test と jpg へ分割
・//解説?
アップロード後にリネームするためのファイル名を定義しています。ココではアップロード時間です。
・//解説?
アップロードしたい先(フォルダー)を定義します。絶対パスと相対パスが指定できます。
・//解説?
これがファイルをアップロードした後のフルパスとなります。
・//解説?
変数の中身をテキスト表示します。
・//解説?
ファイルのアップロード構文です。
move_uploaded_file( 一時保管ファイル, ファイルアップロード先);
となります。
[adcode1]
■まとめ
一、ファイルは一時保管場所からアップロードされる
二、拡張子に気をつけてアップ処理をする
[adcode0]