web-dev-qa-db-ja.com

放棄されたフォームから残ったサーバー上の一時ファイルをいつ、どのように削除しますか?

サイトに投稿を送信するためのフォームがあり、複数のファイルアップロードツール( Mini Ajax File Upload Form )があり、ファイルが追加されると(実際の投稿前に)サーバーに送信し、サーバーが保存します。それらを一時ディレクトリに入れます。記事が送信されると、関連するすべてのファイルがアップロードディレクトリに保存され、一時ディレクトリが消去されます。

ファイルが追加されたが送信されなかった投稿の後に残ったファイルから一時ディレクトリを消去するにはどうすればよいですか?たとえば、cronスクリプトを使用して時々実行する必要がありますか、それともサイトスクリプトを実行するたびに実行する方が良いでしょうか。

投稿は匿名である必要があります(キャプチャまたはより困難な検証).

2
olegst

私は逆の順序で行きます。

ファイルの送信を最後に行い、crontabを使用して、頻繁にゴミデータを削除します。

送信されるデータが十分に小さい場合は、PHPセッションまたはCookieを使用して基本情報を保存し、ファイルが送信されたときに、Cookieまたはセッションからデータベースに基本情報を保存します。ファイルの削除について心配する必要はありません。

1
Mike

次のような2つの異なるテーブルに書き込みますか...

tblTmpUpload
id
file_path
timestamp

tblUpload
id
file_path
otherstuff
timestamp

その場合、tblTmpUploadを照会して、24時間以上前のタイムスタンプを持つファイルを探し、保存されているファイルパスに基づいてファイルを削除できます。

0
digit1001