对于相对模糊的标题感到抱歉,我想不出别的什么。
因此,简而言之,我要求的是创建简单文件上传服务的最佳(资源最少)方法,该服务将在首次下载后删除该文件。可以是PHP或其他任何东西(只要它相对容易实现)。它基本上适用于单个用户的流式屏幕截图。
首先想到的是简单地进行常规上传,然后执行readfile(),然后执行unlink()。 sendfile显然是不可能的,因为我没有办法在文件传输后执行代码。但readfile()看起来并不是一个好主意。
我不介意在这些行上安装一个单独的守护进程。
答案 0 :(得分:2)
的伪代码:
$_FILES['tmp_name']
uploads/file{random_numbers}.extension
访问yoursite.tld/view.php?id={unique id that's <> file{random_numbers}
时:
SELECT path FROM TABLE WHERE token = 'UNIQUE ID ABOVE' AND downloaded = 0
1.1如果DB中有一行,我们得到路径,然后在DB中设置downloaded = 1
1.2 ELSE我们不做任何进一步的工作
使用非常规标题包含页面上的文件以便下载
x
分钟运行一次cron-job以清除不再需要的文件 - cron将无法删除当前正传输给用户的文件(据我所知,因为它仍然是“在使用中”)。希望您能够按照我的逻辑并按计划实施它。
答案 1 :(得分:0)
如果您不介意安装单独的守护程序,可以安装cron。您可以对其进行设置,以便每隔n
分钟删除过时的文件。