忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/11/21

ファイルアップロード

ファイルをアップロード

必ず、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のいずれかのファイルをアップロードしてください');
}
?>


PR

2011/04/30 phpの教科書 Trackback() Comment(0)

カレンダー
 
10 2024/11 12
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
 
 
リンク
 
 
 
カテゴリー
 
 
 
フリーエリア
 
 
 
最新CM
 
 
 
最新記事
 
(01/01)
(12/29)
(12/29)
(12/28)
(12/28)
 
 
最新TB
 
 
 
プロフィール
 
HN:
No Name Ninja
性別:
非公開
 
 
バーコード
 
 
 
RSS
 
 
 
ブログ内検索
 
 
 
アーカイブ
 
 
 
最古記事
 
(04/30)
(04/30)
(04/30)
(05/07)
(05/07)
 
 
P R
 
 
 
カウンター