アプリ版:「スタンプのみでお礼する」機能のリリースについて

画像添付のメール送信フォームの件です。
下記のような流れになっています。

1.送信フォーム
 ↓
2.確認画面
 ↓
3.送信完了

1のPOSTから2のPOSTまで、$_FILES['hoge']['tmp_name']の値を引き継げないようなので、
1のPOST送信時に$_FILESの画像を一旦サーバに保存する必要があります。

確認画面から前に戻る場合や戻るボタンを押された場合には、
一時保存した画像を削除することができますが、
2の確認画面でブラウザを閉じてしまった場合は、
一時保存画像がサーバ上に残ってしまうことになります。

これを防ぐ方法はありませんでしょうか?

確認画面をなしにすれば、サーバ上に画像が残ることを防げますが、
確認画面がどうしても必要になるため、
$_FILESの値を引き継げない現状では、
定期的にcronで、一時保存画像を掃除するくらいしか思いつきません。

それ以外に良い方法はありますでしょうか?
よろしくお願いいたします。

A 回答 (3件)

>$_FILESのファイルデータはセッションでも引き継げないようです。




「画像データ」を読み込んでセッション変数に入れてもダメでしたか?

(e.g.)
$_SESSION['gazou'] = file_get_contents($_FILES['upfile']['tmp_name']);
    • good
    • 0
この回答へのお礼

> file_get_contents
気づきませんでした!!!

file_get_contentsでセッションに入れて、
送信時にfile_put_contentsで戻して、
送信完了後に削除という流れでいけました!

これであれば確認画面の際には画像がアップされていません。
これでサーバに画像が残ることはなくなりました。

file系の関数をもうちょっと勉強しておきます。
ありがとうございました!

お礼日時:2012/08/24 19:22

セッションを使ってセッション変数に入れてしまえばいいのでは?

この回答への補足

ご回答ありがとうございます。
全てのデータはセッションに入れていますが、
$_FILESのファイルデータはセッションでも引き継げないようです。
よろしくお願いいたします。

補足日時:2012/08/24 17:53
    • good
    • 0

画像をbase64とかでエンコードしてinputタグのhiddenタイプでデータとして受け渡すという方法も可能かと思います。

この回答への補足

ご回答ありがとうございます。
$_FILESの画像についてはセキュリティ上引き継げない仕様のようです。
よろしくお願いいたします。

補足日時:2012/08/24 17:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!