2009-08-01 61 views
3

我有一个php脚本,它提供了一个指向用脚本创建的临时文件的链接。我希望该用户能够下载该文件,但我不希望该文件长时间保留在服务器上。我想在2分钟后删除文件。如何才能做到这一点?在PHP中删除文件后的时间

回答

8

您可以在下载后立即将其删除。输出文件的内容,然后关闭它并unlink它。

编辑:例如

$fo = fopen($f, 'rb') ; 
    $content = fread($fo, filesize($f)) ; 
    fclose($fo) ; 
} 
// Stream the file to the client 
header("Content-Type: application/octet-stream"); 
header("Content-Length: " . strlen($archive)); 
header("Content-Disposition: attachment; filename=\"myfile.exe\""); 
echo $archive; 
unlink($f); 
+0

这听起来不错,但我怎样才能输出文件的内容?我的意思是说,要下载的文件实际上是一个可执行文件(.exe),它是C++编译的结果。我怎样才能给用户一个exe文件下载? – QAH 2009-08-01 22:55:54

2

建立一个cron作业运行每隔几分钟您的清洁脚本。您可以使用filemtime()函数查看文件的创建时间,并在文件被认为“足够老”时将其删除。