• 締切済み

フォームから画像登録の際の確認画面について

フォームからテキストと画像を登録させようとしています。 登録する方法として自PCの画像があるパスから画像を特定して 登録しようとしていますが 確認画面で画像を表示するときに (1)自PCのパスから直接画像を表示する (2)一度、サーバにアップロードしてから表示する の2通りがあると思います。どちらで画像を表示させるのが主流なのでしょうか? ※たぶん、(1)はできないと思いますが・・・。 (2)の場合、画像をアップロードする際にファイル名がダブらないようにする 工夫も必要になるのかと思います。 よいアイディアありましたら教えてください。

みんなの回答

回答No.3

確認画面でウィンドウを閉じられた場合ってことですか? 確かにその場合はテンポラリフォルダにファイルが残ってしまいますが、その場合の対処もいろいろと方法はあると思います。 私だったらの場合ですが、以下のようにやると思います。 1.アップロードファイルのチェック(必須の場合は画像がアップロードされているかどうか、他サイズや拡張子など) 2.テンポラリディレクトリの存在チェック(無い場合は作成) 3.ディレクトリ内のファイルをチェック(この時点で存在しているファイルは必要が無いので全て削除) 4.テンポラリフォルダへ保存(ファイル名をセッションに保存) 5.確認画面表示 6.セッションに画像ファイル名が存在する場合は、画像ファイルの存在チェック(無い場合はエラー画面へ) 7.アップロード先ディレクトリの存在チェック(無い場合は作成) 8.画像ファイルのリネーム 9.画像ファイルをアップロード先ディレクトリへ移動 10.セッションの削除 11.完了画面へ ※6でセッションに画像ファイル名が存在しない場合はアップロード無しと判断し、6~9の処理はスキップする このくらいやっておけば業務レベルとしても十分だと思いますが。 テンポラリディレクトリの掃除に関して、その他の方法としては サーバーにSSHなどでアクセスできるならば、cronで定期的にディレクトリの中身を掃除するなど方法はいくらでもあると思いますよ。

jin0711
質問者

お礼

早速の回答ありがとうございます!! 1点確認を。。。 「2、3」ですがこのテンポラリディレクトリは画像ファイルを 確認画面で表示させる場合、複数ユーザで共用ですよね? そう考えると、「3の全て削除」は実行するのか 教えていただきたいのですが・・・。 よろしくお願いいたします。 また、この方法じゃなくて、 ユーザがパスを指定しているので そのパスからユーザPCで直接そのファイルを閲覧させる方法って ないですかね?

回答No.2

自分の場合は大抵、「任意の文字列」+「ユニークID」でやります。 「ユニークID」は画像関係のデータを保持するテーブルのプライマリを使います。 DBを使用していないなら、適当なテキストなどに保存し、本ディレクトリへ保存する際に1づつプラスするなど方法はいろいろあるかと思いますが。

jin0711
質問者

お礼

回答ありがとうございます。 この場合、ウィンドウを×ボタンで閉じられてしまうと 画像ファイルだけが残ってしまうことになりませんか?

回答No.1

1.一時ディレクトリを作って、まずはそこに保存する。 2.確認画面での表示の際は、一時ディレクトリを見て表示させる。 3.「登録」で本ディレクトリへ保存、「戻る」で一時ディレクトリにアップしたファイルの削除。(「登録」の際もディレクトリを移動させたら一時ディレクトリの中身は綺麗にしておくと親切かと) 簡単に言えばこんな感じの処理が一般かと。

jin0711
質問者

お礼

早速の回答ありがとうございます。 この場合、ファイル名がダブってしまいそうな気がしますが その対処ってどのような方法がありますか?

関連するQ&A