宜しくお願いします。
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で質問しましょう!
似たような質問が見つかりました
- Outlook(アウトルック) PCで登録途中の画面から認証コードを確認する方法を教えてください。 3 2022/09/29 06:11
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- ポイントサービス・マイル ポンタポイントの登録の仕方を教えてください 1 2023/01/19 22:56
- ドメイン・サーバー・クラウドサービス 自作サイトをサーバーにアップロードしたのですが… 2 2022/11/08 18:12
- 所得税 電子税?のメールについて教えてください 8 2022/09/04 21:38
- X(旧Twitter) 【至急】twitterを乗っ取られたのでしょうか? 1 2022/09/08 02:34
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- iPhone(アイフォーン) iphoneで撮影した写真、動画を連番のファイル名で保存したい。 1 2022/04/28 02:12
- Yahoo!メール Yahooアカウントにログインできなくなって困っています。 2 2023/05/16 02:28
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
空のファイル
-
VBScriptで、ファイルから任意...
-
tplファイルのプレビューの方法
-
VBAでサーバーにアクセスするに...
-
JAVAで別サーバーのファイルの...
-
URLに~/cgi-bin/~を隠す方法
-
ASPからJavaScriptへの受け渡し...
-
ApacheでのCGIについての質問
-
ASP(IIS?)のエラーについて
-
プロバイダで定められたPerlへ...
-
ネットワーク上の共有フォルダ...
-
携帯とPCの振り分け
-
VB6でレジストリファイルをイン...
-
Tomcat で CGI の実行結果が表...
-
perlからJavascriptを起動
-
Can't locate R.pm in @INC
-
ユーザの所属するグループを取...
-
Perlプログラム上でアラートを表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
VBAでサーバーにアクセスするに...
-
JAVAで別サーバーのファイルの...
-
VBScriptで、ファイルから任意...
-
サーバー上のフォルダ削除が出...
-
Webでのファイルアップロードに...
-
vbでFTPサーバーに対して、サー...
-
C# ファイル削除のエラーコード
-
WEB上で文書のアイコンを配置す...
-
HTMLソースファイルからタグを...
-
contenttypeについて
-
Dreamweaver(ドリームウィーバ...
-
自前のアップローダの作り方
-
個人的なアップローダーの設置
-
ローカルファイルをサーバーか...
-
PHPが動いてCGIが動かない?
-
30分ごとに更新
-
Perl 別ドメインのファイル存在...
-
アクセス制限について
おすすめ情報