问题描述
||
是否可以将“ 0”上传的文件存储到目录中,并在几分钟后将其标记为要删除?我试图在一段时间后将一个临时文件保留在服务器上,然后将其删除(仅在未对其进行处理的情况下),因此当文件已上传并移动到目录中时,未处理(不用担心这部分,这将由我完成),它应从服务器中删除文件。
您无法将临时文件保留在服务器上(不使用
move_uploaded_file
),因此基本上存储在服务器的tmp
目录中,当上传到临时目录(或移至目录)和\时,如何保存文件?标记\”,如果以后未处理,则将其删除。
我已经尝试研究如何做到这一点,但是我还没有找到有关如何创建一个临时文件以在一段时间后保留的任何问题/主题。
编辑:为澄清起见,我不希望在上传后脚本执行完后删除文件。
解决方法
按着这些次序:
首先使用常规的move_upload_file函数并将文件保存在服务器上。
现在创建一个新的php程序来做到这一点:
使用filetime函数来确定文件的最后编辑时间。因此,您可以检查它是否最近被处理。
将上面的日期/时间与您的删除条件进行比较。
使用php unlink函数摆脱旧文件。
现在,每天以cron的身份运行上述程序。
, 没有自动方式。某些服务器会在一段时间后定期清除/ tmp目录中的文件,但是您可以确定的唯一方法是,如果您编写了自己的清理脚本并作为cron作业运行了。 (或者使用穷人的计划,让脚本触发清理检查,这是一种不太可靠但有时可行的方法。)
您可以标记数据库或文本文件中文件的到期时间,也可以仅使用文件系统时间戳记检查到期的文件。
一个更复杂的解决方案是将文件移动到某种缓存中,例如Redis,您可以在其中设置到期时间(TTL),但这将取决于您存储的数据类型,这是一个比较深奥的解决方案。
, 我有另一种使用的方法。我将文件移到临时位置。处理后,它不会在固定的时间删除。而是下次脚本运行时,它将删除所有以前上传和处理的文件。这避免了cron作业的需求。消除一点头痛。