php:: tmp 文件会保留多长时间?
我正在处理上传脚本。
如果用户上传了一个文件并且它已经存在,我想警告用户(这都是通过ajax),并给他们替换它或取消的选项。
我没有移动文件,而是好奇是否可以将文件保留在tmp中,并在ajax响应中传回该文件的路径。
如果他们的用户说覆盖了该ajax请求中的旧文件,则将路径传递回php,后者将继续处理该文件。
但是,为了使其工作,我需要知道文件在php的tmp dir中保留多长时间
我正在处理上传脚本。
如果用户上传了一个文件并且它已经存在,我想警告用户(这都是通过ajax),并给他们替换它或取消的选项。
我没有移动文件,而是好奇是否可以将文件保留在tmp中,并在ajax响应中传回该文件的路径。
如果他们的用户说覆盖了该ajax请求中的旧文件,则将路径传递回php,后者将继续处理该文件。
但是,为了使其工作,我需要知道文件在php的tmp dir中保留多长时间
对于上传的文件,手册指出:
如果文件尚未移走或重命名,则会在请求结束时从临时目录中删除该文件。
因此,应将要保留的文件移动到另一个位置。
更一般地说,正如您的问题标题可能暗示的那样,临时文件夹将由系统清理。当使用 tempnam 或 tmpfile 等函数时,或者只是在写入临时目录时,情况确实如此(请参见sys_get_temp_dir)。
在 Ubuntu 中,此操作在每次系统重新启动时完成,或按时间间隔完成,如 中所定义。/etc/default/rcS
在一些基于红帽的发行版中,它是使用cronjob中的实用程序完成的。在其他情况下,分区是使用文件系统挂载的,文件系统类似于RAM磁盘(因此在计算机关闭时被清理)。tmpwatch
/tmp
tmpfs
另一个已知的机制是大小阈值,这意味着当临时目录达到一定大小时,将从旧文件中清除它。