ファイルのアップロードについて
画像ファイルをフォームからアップロードしているのですが
どうやっていものかわからないことがあります。
まずは、アップするファイルを選択してもらいファイルサイズや
拡張子チェックに問題がなければ他の項目にエラーがあっても
move_uploaded_file関数で一時保存フォルダに画像を保存しています。
一時保存フォルダにアップされた画像は後々タイプスタンプで経過
時間を取得し1日以上経過しているものについては削除するので
タイムスタンプの値をファイル名にしています。
全ての項目にエラーもなく確定となった場合にはrename関数で
一時保存フォルダから正式な保存フォルダへファイルを移動しています。
ソースをまとめると
// 一時ファイル保存フォルダ
$tempdir = '../../upload/temp/';
// 一時保存のファイル名
$mktime = mktime();
$tempname = $mktime . '.jpg';
// ファイル正式保存フォルダ
$filedir = '../../upload/image/';
// 正式保存のファイル名
$mictime = microtime();
$filename = substr($mictime, 11) . substr($mictime, 2, 6) . '.jpg';
if (isset($_POST['submit'])) {
if ($_FILES['file']['size'] == 0) {
// サイズが0なのでエラー
}
if ($_FILES['file']['error'] == UPLOAD_ERR_OK) {
// サイズチェック2
if ($_FILES['file']['size'] > 1024*1024) {
// 規定サイズ以上なのでエラー
}
if (画像に関するエラーがなければ) {
// move_uploaded_fileで一時保存フォルダへアップロード
}
}
if (全ての項目にエラーがない場合) {
// rename関数で一時保存フォルダから正式な保存フォルダへ移動
}
というようにしています。
$_FILEは保持できないので一度でもファイルをアップロードしても
他の項目にエラーがある限りリセットされてしまいサイズが0バイトと
なるのでエラーチェックに引っかかり何度も選択しなくてはなりません。
一時保存フォルダに保存されたら再度ファイルを選択しアップロード
しない限り他の項目にエラーがあってもファイルのエラーチェックを
通し一時保存フォルダの画像をサムネイル画像としてページ上に表示
させたいのですがどうすればいいのでしょうか?
自分なりに調べてみたのですが参考情報や解決策がみつかりませんでした。
詳しい方がおりましたら宜しくお願い致します!