对于客户端,我正在PHP5中构建一个多步骤表单。在其中一个页面上有多个文件上传。上传的文件必须存储在临时目录中,直到用户完成表单。目前,所有表单数据将暂时保存在具有唯一编号的会话中。我想过将文件存储在会话中,但这可能会导致错误,因为最大的大小错误。
我想到的另一种方法是将文件存储在临时目录(tmpname())中。但是这个方法的问题是os可以随时清除临时文件夹。当发生这种情况时,文件就会丢失。
理想的解决方案是,当表单完成后,文件将被移动到其永久目录(这并不难)。当会话因不活动而过期时,文件将从其临时目录中删除(以减少未使用的空间)。
最好的方法是什么?即是否有内置功能等。
答案 0 :(得分:1)
那么,为什么不将会话中生成的名称tempnam()与目标文件名一起存储?喜欢
$_SESSION['temp_files'] = array($truename => $tempname);
在session_close中,您将手动取消链接文件并完成。要防止临时会话中的临时文件在临时目录中堆积,您可以从目录中清除具有特定年龄的文件。
我忘了什么吗?