人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP4.2 mysql4

ファイルのアップロードに関して
会員フォームを作ります。
test01→02→03に進みます。

test01.php
========================
----入力----
?「名前」( )
?「メール」( )
?「画像」( )※アップロードします
------------
(送信)(リセット)
========================

test02.php
========================
これでOKですか?
「はい」「いいえ」
========================

test03.php
========================
名前、メール、アップロード完成
========================

この場合、03でmysqlに書込みます。
その際に、02から03にファイルの持ちまわしをするにはどうすればいいですか?(一般的にはどのようなもち回し方をしますか?)

○「名前」や「メール」はhiddenを使って持ちまわせますが、ファイルはできますか?

わかるかたおねがいします


●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:MySQL PHP アップロード ファイル メール
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● Yota
●26ポイント

別ページにしようとして苦労されているように見受けられます。

送信ボタン<input type="submit" name="up" />

確認ボタン<input type="submit" name="conf" />

POSTリクエストで受けるするとすると、

if(isset($_POST['up']) && !isset($_POST['conf']) ) {

echo確認メッセージ

アップロード処理

} elseif(!isset($_POST['up']) && isset($_POST['conf'])) {

MySQL INSERT 処理

} else {

echo最初のアップロード画面

}

というふうに1ページの処理にすれば、ファイルのパスを持ちまわす心配は要りません。

http://dummy.com/

◎質問者からの返答

ありがとうございます!!!

やってみます。


2 ● t_shiono
●27ポイント

アップロードしたファイルはhiddenでは持ちまわせません。

一度アップロードしたファイルは適当な場所に保存しておき、そのファイルへのパスを持ちまわすことになります。

この場合、ユーザがそのまま登録してくれればよいですが、違う画像をアップロード、途中でやめたといった場合、一時ファイルを削除することを考慮する必要があります。

ただ、ブラウザを突然閉じられるような場合は一切対処できないので、そこまで面倒を見る必要があれば、主導で消すか、定期的に消すプログラムが必要となります。

ご参考なれば。

http://q.hatena.ne.jp/1181097905


3 ● penchick
●27ポイント

http://www.gac.jp/article/index.php?stats=question&category=...

画像などのファイルをローカルからアップロードする場合、セキュリティ上の理由から<input type="file">によって手動で選択されたものしか送信できないようになっています。

つまり、確認画面からのSubmitにファイルを含めることはできません。

ですので、送信の前に確認画面を挟む場合は、確認画面に遷移する時点で一旦tmpフォルダかデータベースのtmpテーブルにファイルをアップロードしてしまい、そのファイル名をhiddenで保持しておきます。

そして、他の情報が送信される際に、すでにアップしておいたファイルをデータベースに記録することで、確認画面を跨いだアップロードを実現するのが普通です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ