宜しくお願いします。
PHP4+MySQLで簡単なWebシステムを構築しています。
1つのフォームから、数点の画像をアップロードして登録したいと思っています。
「登録内容はこちらでよろしいですか?」というような確認画面で、いったん確認画面に画像を表示させます。
ここでOKなら登録、というオペレーションです。
一見簡単なのかと思いきや、どうしても実現させる方法がわからずに困っています。
当初は、確認画面に移る段階で、PHPのテンポラリーファイルを、別の一時ディレクトリへ格納しようとしました。
ところが技が足りないのか、セッションが切れた場合などに、サーバーにファイルが残るようなコードになっちゃいます。
悩んだ末、サーバーに対して「フォルダに2時間以上あるファイルは自動で削除する」ような設定を施すしかないと思ったのですが、ライアントの都合上、できればサーバー設定をいじってほしくないと言われまして。。。
もしかしたら、すごく簡単なのかもしれないのですが、完全にハマってしまっています。
なにか方法がありましたら是非ご教示ください。
登録者は特定の人たちなので、OSやブラウザなどの使用環境は、あるていど統一できます。
ですからPHPだけでなくJavaScriptを絡めてでも、実現できたらと思っています。
どうか宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
基本的に、Webサーバ側ではテンポラリファイルを簡単には消すことができないと思っています。
JavaScriptのonUnloadイベントなどを使って、PHPのテンポラリファイル削除スクリプトなどを呼ぶことができれば、ユーザがブラウザを閉じたりしたときに消すことができると思いますが、完了画面に行く際などはその処理をさけなければなりません(JavaScriptはブラウザを閉じるのか、ページが切り替わるのかなんて気にしないはずだし・・・)し、面倒な処理が必要になってくるかと思います。
cronなどで数時間そのままのファイルを削除するスクリプトを呼ぶ設定した方が明らかに早い気がしますが、絶対にできないことなのでしょうか?きちんとお客様に説明できれば納得されると思いますよ。
・ブラウザを閉じる際にはサーバに要求がこないので、テンポラリファイルが削除できない
・セッションが切れたりした場合は、誰だかわからなくなるので、どのファイルを削除すべきか判断しにくい
など、いろいろお客様を納得させられる話し方はあるのではないでしょうか?
それから・・・
the845tさまの書かれた方法では、他の人が同時にファイルをアップロードしようとしたときに問題が出てくるため、それを解決しなければならなくなるかと思いますが・・・
#サーバにすでにあるファイル名をさけてファイルを
#開いて、という方法も同時に見に行った場合、
#検出は困難だと思います。
間違いがありましたらご指摘ください。
ではでは☆
私もKanataさんの結論と同じところに達していたのですが、もしかして何か良い方法があるのでは!?と思い質問させて頂きました。
おかげさまで自信を持ってお客様に主張できました!
(お客様の結論は、1週間に1回くらいFTPを使って、手動で消すとのことでした)
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
JAVAで別サーバーのファイルの...
-
VBAでサーバーにアクセスするに...
-
VBScriptで、ファイルから任意...
-
cgi→csvが文字化け
-
ASP(IIS?)のエラーについて
-
#!/usr/bin/perl --
-
画像アップ時のエラー
-
ファイルダウンロード後に、デ...
-
SSIで,CGIを実行するときに引...
-
PyCharmでのCGIを使ったWebサー...
-
CGIでソースがそのままでてしま...
-
Yahoo!などのアクセス解析は??
-
ユーザの所属するグループを取...
-
東京ドームから幕張メッセまで...
-
ラジオボタンのグループ化
-
sendmailの-fオプション記述
-
FTPにて553エラー
-
URLに~/cgi-bin/~を隠す方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
VBAでサーバーにアクセスするに...
-
VBScriptで、ファイルから任意...
-
JAVAで別サーバーのファイルの...
-
vbでFTPサーバーに対して、サー...
-
空のファイル
-
フォームからアップロードした...
-
postmailのテンプレートページ...
-
CGI掲示板の改良
-
PHPが動いてCGIが動かない?
-
C# ファイル削除のエラーコード
-
contenttypeについて
-
statの戻り値が返ってこない
-
cgiのメールでファイルを添付し...
-
フリーの新着情報CGIを探してい...
-
ウィンドウズ XPの検索で拡張...
-
PC内のサイトのサイズとサーバ...
-
FTP接続後のwebサイトの観覧に...
-
.htaccess 外部サーバーからフ...
おすすめ情報