ユーザーが自分のプロフィール写真をアップロードできるようにしています。次の手順が含まれます。
- ユーザーがアップロードする画像ファイルを選択
- サーバーは AJAX を介してファイルを受信し、次の名前で保存します。
temp_userid.jpg
- サーバーは画像の場所をページに返すので、ユーザーはそれを見て調整することができます
- ユーザーが [変更を保存] をクリックすると、画像更新の最終確認としてサーバーにポスト バックされます。
- サーバーは をロードし
temp_userid.jpg
、スケールやクロップなどの調整を行い、既存のプロフィール画像を上書きしてから、最後にtemp_userid.jpg
画像を削除します。
ユーザーが変更を保存する限り、これは正常に機能します。ユーザーがページを離れることを決定した場合、temp_userid.jpg
ファイルはサーバー上に残り、削除されることはありません。一部の画像は、サーバー上で使用したくないサイズで 5MB を超える場合があります。
安全な方法で一時ファイルのフォルダーをクレンジングするにはどうすればよいですか? 私はできると思っていました:
- ユーザーが自分のアカウントにログインするたびに、一時イメージ ファイルの削除を試みます。ここでのわずかな問題は、ユーザーが二度とログインできない可能性があることです。しかし、これは、ある種のアカウント有効期限チェックを使用して対処できます。
- サーバーから「temp_」のプレフィックスを持つすべてのイメージを定期的に削除しようとします。ここでのリスクは、ユーザーがまだ自分の画像を調整している間にそれを削除することです。これはひどいことです!
これを行うより良い方法はありますか?これは、私が使用しているアプリケーション サーバーであるため、ColdFusion としてタグ付けしています。