• 締切済み

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

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

  • PHP
  • 回答数3
  • ありがとう数4

みんなの回答

回答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

  • フォームからアップロードした画像を、確認画面で確認後に登録するには?

    宜しくお願いします。 PHP4+MySQLで簡単なWebシステムを構築しています。 1つのフォームから、数点の画像をアップロードして登録したいと思っています。 「登録内容はこちらでよろしいですか?」というような確認画面で、いったん確認画面に画像を表示させます。 ここでOKなら登録、というオペレーションです。 一見簡単なのかと思いきや、どうしても実現させる方法がわからずに困っています。 当初は、確認画面に移る段階で、PHPのテンポラリーファイルを、別の一時ディレクトリへ格納しようとしました。 ところが技が足りないのか、セッションが切れた場合などに、サーバーにファイルが残るようなコードになっちゃいます。 悩んだ末、サーバーに対して「フォルダに2時間以上あるファイルは自動で削除する」ような設定を施すしかないと思ったのですが、ライアントの都合上、できればサーバー設定をいじってほしくないと言われまして。。。 もしかしたら、すごく簡単なのかもしれないのですが、完全にハマってしまっています。 なにか方法がありましたら是非ご教示ください。 登録者は特定の人たちなので、OSやブラウザなどの使用環境は、あるていど統一できます。 ですからPHPだけでなくJavaScriptを絡めてでも、実現できたらと思っています。 どうか宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • HP更新の際の「登録フォーム」のエラー

    HPで「登録フォーム」を使用しております。 以前 HPを更新するため 内容等を書き換えました。 その時 サーバー上にあるすべてのコンテンツをダウンロードして 更新後 サーバーに再度 すべてのコンテンツをアップロードしました。 その後 「登録フォーム」の使用ができなくなってしまいました。 どうしてでしょうか? ご存知の方 よろしくお願い致します。

  • フォームから入力すると、入力内容がブラウザ画面に反映する仕組み

    フォームから入力すると、入力内容がブラウザ画面にテキストとして反映する仕組みを作りたいと考えています。 ただし、Web上のサーバーにアップロードせず、ローカルでhtmlファイルを開いて使用する前提です。 たとえば「クリスマス」とテキストエリアに入力してボタンを押すと、テキストがテキストエリアの下に表示され、 続いて「サンタクロース」とテキストエリアに入力してボタンを押すと、「クリスマス」の下に「サンタクロース」が表示される・・・といった次第です。 よいアイディアがあればご教授ください。

  • フォームにJPG画像を表示させたい。

    テーブルに画像を格納してフォーム上で表示させたいのですが ここのサイトで色々検索していたら http://okwave.jp/qa1674068.html の質問がヒットして読んだのですが アクセス2003の自分にとってはPhoto Editorがないため無理そうです。 (BMPにしたらかなり劣化したのでダメでした。) そこで上の過去の質問で KenKen_SPサマがおっしゃる ”テキスト型にしてファイルパスを格納 し、必要な時に BMP画像を表示する仕様とした方が、データベース の仕様としては好ましく思います。” とはどういうことでしょうか? 早速該当のJPG画像のパスをテキスト型のフィールドに入れてみましたが フォームのテキストボックスにはただパスが表示されるだけでした。 (コントロールソースに関連付けた) もしかしてテキストボックスではない?汗 他の方の質問&回答に便乗して申し訳ございませんが ご教授よろしくお願い致します。

  • 画像が送れるCGIフォームって難しいですか。

    ユーザから商品に関する「アイデア」と参考になる「画像」を一緒に送れるフォームをCGIで組もうと思っています。 1.これって難しいのでしょうか。 2.やるために、サーバー側で行う作業にはどんなものがありますか 3.もし、できればサーバーにためるのではなく、指定メールアドレスに転送するようにしたいのですが、可能でしょうか。 以上、詳しい方、教えていただければ大変うれしいです。 どうぞよろしくお願いします。

    • ベストアンサー
    • CGI
  • 画像のアップロード

    現在画像のアップロードをし、同時に画像名と画像の説明文を登録するフォームを作っています。 ****************************************************** 画像名、説明文→AサーバーのDB(PHPファイルと同じサーバー) 画像ファイル→Bサーバーの画像格納フォルダ ****************************************************** 上記のように別々のサーバーに登録したいのですがどのように実現したらよいのでしょうか?

    • ベストアンサー
    • PHP
  • ★PHP★画像アップロードの際に余白追加

    PHPで画像アップロードフォームを作成しています。 その際に、全ての画像が 500*500の画像になるようにアップロードさせたいです。 (様々な画像登録をされるからです。) 登録まではできたので、あとはサイズ変更のみです。 質問が説明不足かもしれませんので、 何かヒントでもいただけると助かります。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPでアップロードした画像が表示されません

    現在、Redhat9+Apache+PHP+PostgreSQLでサイトを構築しています。 PHPはRPMでインストールしました。 php-4.2.2-17.2.i386.rpm PHPでアップロードのフォームを作成し、jpegやgifなどの画像ファイルをアップロードし、表示するパスをDB(PostgreSQL)で管理しています。 画像は/tmp/ に一度アップされ、指定のパスに正常にコピーされているようなのですが、実際、ブラウザで見ると×印がでて表示されません。 アップロードされた画像をダウンロードして、画像処理ソフトなどで開いてみたのですが、表示されません。 アップロードの際に画像ファイルが壊れてしまったように思えます。 どなたか、解決方法等をご存知の方がいらっしゃいましたらご教授願えないでしょうか? よろしくお願いいたします。

    • 締切済み
    • PHP
  • 画像ファイル等をHP上のフォームでアップロードするには??

    こんにちは。 ホームページのフォームからユーザーにファイル(画像ファイルなど)をサーバー上にアップロードしてもらうにはどのような方法がありますか?初心者なのでよくわからないんですが・・・簡単な事ですか?

  • 画像のみリロードする方法は?

    PHPで画像を登録するフォームを作成しています。 画面内には画像の登録<INPUT type="file"・・・と別の<FORM>内に複数のテキスト入力項目がありこちらはデーターベースに画像の情報を登録します。 画像をアップロード後、アップロードした画像のみ再表示し事前に入力した項目はそのまま残しておく方法をご存知の方いらっしゃいましたら宜しくお願いします。 <FORM … <INPUT type="text" … (1) <INPUT type="submit" … </FORM> <FORM … <INPUT type="file" … (2) <INPUT type="submit" … </FORM> <IMG src=" … (3) (2)で参照しアップロード後リロードし(3)で画像表示する。 アップロード前に(1)に入力した内容は残しておく。 という感じです。 上手く説明できず分かりにくいとは思いますが宜しくお願いします。

    • ベストアンサー
    • PHP