[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ファイルをアップロード
必ず、post(getはダメ), multipart/form-data。
<form action="" method="post" enctype="multipart/form-data">
アップロードされたファイルは$_FILESに連想配列で渡される。
$_FILES['name']などとして、formのname属性に指定した値で取り出す。
仕組みは、
ファイル → (アップロード) → tmpディレクトリ → (move_uploaded_files) → 目的のディレクトリ
tmpディレクトリに一端、格納される。この時、tmp_name というファイル名で一時保管されている。
一時保管先は<?php print ini_get('upload_tmp_dir'); ?> で調べられる。
そして、このファイルを move_uploaded_files で目的のディレクトリへ動かす。
ブール値 = move_uploaded_files(コピー元 , コピー先);
p109
<form action="action.php" method="post" enctype="multipart/form-data">
<dl>
<dt>写真</dt>
<dd><input type="file" name="my_img" id="my_img" /></dd>
</dl>
<input type="submit" value="submit"/>
</form>
action.php
<?php
$file = $_FILES['my_img'];
print('ファイル名(name):' . $file['name'] . '<br>'); //自動的にこれらの連想配列で格納されている
print('ファイルタイプ(type):' . $file['type'] . '<br>');
print('アップロードしたファイル(tmp_name):' . $file['tmp_name'] . '<br>');
print('エラー内容(error):' . $file['error'] . '<br>');
print('サイズ(size):' . $file['size'] . '<br>');
//ファイルアップロードの処理をする
$ext = substr($file['name'],-3);
if($ext == 'gif' || $ext == 'jpg' || $ext == 'png'){
$filePath = './user_img/' . $file['name']; //ここでは、パスは、元々のファイル名で保存しようとしている。しかし、下の通りmove_uploaded_fileでは$file["tmp_name"]なので注意
move_uploaded_file($file['tmp_name'] , $filePath); //「tmp_name」とは一時的にアップロードされたファイル名の事。
print('<img src="' . $filePath . '"/>');
}else{
print('%拡張子が.gif,.jpg,.pngのいずれかのファイルをアップロードしてください');
}
?>
04 | 2025/05 | 06 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
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 |