セッションが破棄されたときにフォルダからファイルを削除することは可能ですか? ユーザーがサイトに来て、サイトにログインせずにファイル(画像、またはテキストファイル)などをアップロードできるときに、それを行っています。ファイルはプロジェクトのフォルダーに保存されます。ユーザーがログインせずにブラウザーを終了した場合、ユーザーがプロジェクトフォルダーにアップロードしたすべてのファイルを削除する必要があります。これを行う方法 ?
前もって感謝します。
これを行うには、独自のセッション ハンドラを実装します。このようにして、セッションの破棄を含むさまざまなイベントのコールバックを定義できます。詳細については、次のリンクを参照してください。
http://www.php.net/manual/en/function.session-set-save-handler.php
更新:このソリューションの問題は、残りのセッション処理コードも実装する必要があることです (セッションの初期化、セッションの終了、ストレージからの読み取り、書き込み、ガベージ コレクション)。ただし、上記のリンクされたページには、機能を追加できる完全な例が示されています。
それはすべて、ビジネス上の決定に依存します。
ファイルをプロジェクトフォルダーに保存しないで、代わりに「tmp」フォルダーなどの別の場所に保存し、そのファイルの参照(ファイルパス)をセッションに保存します。
セッション セット保存ハンドラーを使用して、セッション イベントのイベント ハンドラーを作成します。
unlink("path") 関数を使用すると、PHP で実行できますが、使用したロジックにも依存します。
アップロードしたファイルを削除したいだけなら、リンクを解除するのが解決策です
Sriram、PHP では、サーバー側でセッションを追跡していないようです。サーバーがセッションの有効期限が切れたことを認識するのは、リクエストでセッション Cookie に関する情報を受信したときだけです。Cookie が存在する場合、セッションが存在するか、期限切れです。