- PR -

PHPで画像アップロードする方法を教えて下さい。

投稿者投稿内容
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-04-06 11:32
引用:

kiyoさんの書き込み (2007-04-06 03:28) より:
ファイル名を固定させる方法に関して何か参考となるサイトなど紹介して頂けたら幸いです。


今のソースで

$rtn = @move_uploaded_file($_FILES['myfile']['tmp_name'], $uppath);

と書いている部分がどういう動作をするのか確認されていますか?他人のソースを参考(別名:丸写し)にする場合でも、マニュアルで確認すべきです。$uppathが保存するファイル名ですが

$uppath = $updir . basename($_FILES['myfile']['name']);

という内容なので、クライアント側のファイル名を直接使っています(これ自体があまりお勧めできることではありません)。

$uppath = $updir . 'example.jpg';

などとすればどうでしょうか?画像形式が複数あるようなら元ファイル名から拡張子を抽出するか$_FILES['myfile']['type']をチェックするかしないといけませんが・・
kiyo
会議室デビュー日: 2006/12/15
投稿数: 8
投稿日時: 2007-04-06 14:10
現在は下記のコードになっています。これに元ファイル名から拡張子を抽出する為には$_FILES['myfile']['type']をチェックし.txtへ記録をするとしたら下記コードへ$_FILES['myfile']['type']を埋め込むのでしょうか?

それとも別にtxt専用のアクションをおこすのでしょうか?

宜しくお願いいたします。


// ファイルがアップロードされたものなら処理をする
if (is_uploaded_file(@$_FILES["upfile"]["tmp_name"])) {

// ファイル名の文字コードを変換する
$file_name = $save_dir.$_FILES["upfile"]["name"];
$det_enc = mb_detect_encoding($string, $enc_disp . ", " . $enc_file);
if ($det_enc and $det_enc != $enc_file) {
$file_name = mb_convert_encoding($file_name, $enc_file, $det_enc);
}

// テンポラリファイルを保存ディレクトリにコピー
copy($_FILES["upfile"]["tmp_name"], $file_name);
echo "<p>ファイルアップロード完了";
echo "<p>ファイル名:".$_FILES["upfile"]["name"];
}

スキルアップ/キャリアアップ(JOB@IT)