想法是这样的:
- 用户在仅存在于当前会话的某个“临时”文件夹中上传文件。
- 用户注册
- “临时”文件夹中的文件被移动到永久文件夹,即存储。
我可以做这样的事情:
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
我唯一的想法是写入临时文件夹的数据库路径。
任何帮助都将受到欢迎。