PHP4.2 mysql4


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

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

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

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

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

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

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

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/06/06 11:45:06
  • 終了:2007/06/13 11:50:03

回答(3件)

id:Yota No.1

Yota回答回数453ベストアンサー獲得回数282007/06/06 18:47:38

ポイント26pt

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

送信ボタン<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/

id:rrr3

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

やってみます。

2007/06/07 13:58:29
id:t_shiono No.2

t_shiono回答回数256ベストアンサー獲得回数222007/06/06 14:01:40

ポイント27pt

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

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

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

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

ご参考なれば。

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

id:penchick No.3

penchick回答回数22ベストアンサー獲得回数02007/06/06 13:55:09

ポイント27pt

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

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

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

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

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

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません