【发布时间】:2012-03-26 21:11:13
【问题描述】:
我正在寻找一种解决方案,即使在单击提交按钮后,我也希望保留上传的文件。就我而言,我打算为用户提供一个选择,即当用户觉得即使在提交后也不是他选择的上传文件之一时,他只能重新上传他想要替换的文件而不需要重新上传其他文件。有没有办法使用 HTML、PHP 来完成。
谢谢
【问题讨论】:
-
您是否记录了上传到数据库中的文件?
我正在寻找一种解决方案,即使在单击提交按钮后,我也希望保留上传的文件。就我而言,我打算为用户提供一个选择,即当用户觉得即使在提交后也不是他选择的上传文件之一时,他只能重新上传他想要替换的文件而不需要重新上传其他文件。有没有办法使用 HTML、PHP 来完成。
谢谢
【问题讨论】:
文件上传后,使用move_uploaded_file 将其移动到临时位置(不要将其留在系统 tmp 目录中,以防它被自动清理)。
提交表单后,您可以使用 rename 将其从临时位置移动到永久位置。
然后编写一个脚本,该脚本每 X 小时运行一次,该脚本会遍历您临时位置中早于特定时间段 (filemtime) 的文件并删除它们 (unlink) 以清理所有已上传但表单未提交。
【讨论】:
出于安全原因,您不能重新填充文件上传字段。
这可能导致恶意行为的一个示例是,您可以上传隐藏文件,并在其中填充您希望从用户硬盘驱动器中获取的任何文件。
您可能保留所选文件的唯一方法是通过 AJAX 提交表单数据,这样用户就不会真正离开页面,并且只有在验证成功时才将用户重定向到感谢页面(例如)。
【讨论】: