上传的文件在您的服务器上保留多长时间?
Posted
技术标签:
【中文标题】上传的文件在您的服务器上保留多长时间?【英文标题】:How long do uploaded files stay on your server? 【发布时间】:2011-03-15 03:04:01 【问题描述】:当我使用表单上传文件时,它会为我提供“名称”和“tmp_name”,您应该将文件从其临时位置移动以保留它。但是文件在被删除之前会在服务器上保留多长时间?它是永久存储在那里直到您手动清理文件夹,还是在它提交的 php 脚本完成运行后被删除?我的表单跨越多个页面,我只想在最后处理所有内容,而不是在表单的每一页完成后处理部分。上传是在第 3 步(共 5 步)中,所以我想知道是否保存了第 3 步中上传的文件信息,如果在第 5 步后表单完成时该文件仍然存在。
【问题讨论】:
【参考方案1】:除非 PHP 死于可怕的火焰般的死亡,或者您采取措施保存文件,否则当脚本退出时它会被 PHP 自动杀死。如果您需要通过多阶段表单保存它,则必须将其移动到安全的地方,然后跟踪它(隐藏的表单字段、会话、数据库等......)并实施您自己的清理系统以处理废弃表单中的孤立文件。
【讨论】:
【参考方案2】:这取决于 tmp 上传文件夹。如果是tmp
目录,你不能真的相信它可以活到第5步。如果你控制上传文件夹,那么你可以可靠地相信它可以活到第5步。你可以用@987654322设置上传路径@
【讨论】:
我觉得不错。我唯一能预见的是,如果用户没有完成表单,它需要不时进行一些清理。 -1 位于 tmp_name 的文件在请求结束时被销毁。请参阅 Marc B 的回答。【参考方案3】:一旦提交的 PHP 脚本运行完毕,它就会被删除
因此,您可以将文件上传作为最后一步,也可以为未完成的表单实现自己的垃圾收集器。
【讨论】:
以上是关于上传的文件在您的服务器上保留多长时间?的主要内容,如果未能解决你的问题,请参考以下文章
如果在您的服务器上启用了 PATH_INFO,请检查 PHP?