1

对于一个客户,我正在 PHP5 中构建一个多步骤表单。在第一页之一上有多个文件上传。在用户完成表单之前,上传的文件必须存储在临时目录中。目前,所有表单数据都将临时保存在具有唯一编号的 Session 中。我想将文件存储在会话中,但这可能会导致错误,因为最大大小错误。

我想到的另一种方法是将文件存储在临时目录中(tmpname())。但是这种方法的问题是临时文件夹可以随时被os清除。发生这种情况时,文件将丢失。

理想的解决方案是,当表单完成后,文件将移动到它们的永久目录(这并不难)。当会话由于不活动而过期时,文件将从其临时目录中删除(以减少未使用的空间)。

做这个的最好方法是什么?即是否有内置功能等。

4

1 回答 1

1

那么,为什么不将会话中生成的名称 tempnam() 与预期的文件名一起存储呢?喜欢

$_SESSION['temp_files'] = array($truename => $tempname);

在 session_close 中,您将手动取消链接文件并完成。为了防止过期会话中的临时文件堆积在您的临时目录中,您可以从目录中清除具有特定年龄的文件。

我忘了什么吗?

于 2012-05-29T14:59:17.390 回答