アイデアはこれです:
- ユーザーは、現在のセッションでのみ存在する「一時」フォルダーにファイルをアップロードします。
- ユーザー登録
- 「一時」フォルダーからのファイルは、ストレージとも呼ばれる永続フォルダーに移動されます。
私はこのようなことができます:
mkdir('tempfiles/'.session_id(), 777)
ファイルをアップロードします。
if (move_uploaded_file($_FILES['my_files']['tmp_name'], 'tempfiles/'.session_id().'/')) {
// echo "success";
}
ユーザー登録すると、ファイルは別のフォルダーに移動され、一時フォルダーは次のように削除されます。
/* some function to empty dir */
rmdir('tempfiles/'.session_id())
問題は: アップロード後にユーザーが登録されない場合は? 一時フォルダを削除するには?
関数を使用tempnam
すると、「自分で削除する」フォルダーを作成できます..しかし、Windowsサーバーでは、たとえば作成できませんtempnam('/tmp/test', '');
.3文字のプレフィックスを設定するだけです:C:\Windows\Temp\pre569E.tmp
私の唯一のアイデアは、一時フォルダーのデータベース パスに書き込むことです。
どんな助けでも大歓迎です。