FORMで送信した画像を移動して保存する
最終的には一覧表示をさせるところまでやります。
今日は画像を指定したファイルに保存するところまで
(手動でよくない?ってのは無しで)
ソース(index.php)
<?php //画像の移動 if(isset($_FILES['image']) && is_uploaded_file($_FILES['image']['tmp_name'])){ $old_name = $_FILES['image']['tmp_name']; $new_name = $_FILES['image']['name']; if(move_uploaded_file($old_name,'img/' . $new_name)){ echo "アップロードしました。"; } else { echo "出来ませんでした。"; } } ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>無題ドキュメント</title> </head> <body> <form action="index.php" method="POST" enctype="multipart/form-data"> <input type="file" name="image"><br> <input type="submit" value="送信"> </form> </body> </html>
少し解説
isset($_FILES['image'])
issetは変数($_FILES['image'])が入っているかどうかをチェックします。
imageはinput type="file"のnameです。
is_uploaded_file($_FILES['image']['tmp_name'])
$_FILES['image']['tmp_name']がHTTP POST でアップロードされたファイルかどうかを調べます。
tmp_nameはアップロードされたファイルが一時的に保存されるファイルパスです。
送信ボタンを押したら保存されますが、結果が表示されるころには消えています。
$old_name = $_FILES['image']['tmp_name']; $new_name = $_FILES['image']['name'];
一時的に保存されたファイルパスを$old_nameとし、
アップロードしたファイル名を$new_nameとします。
if(move_uploaded_file($old_name,'img/' . $new_name))
move_uploaded_file(A,B)はAをBへ移動するという意味です。
今回は$old_nameをimg/の中へ移動させます。