我制作了一个简单的脚本,允许用户将html文件上传到我服务器上的web目录。但是,我喜欢它,因此每个文件在我的服务器上24小时后都会被删除。每个文件24小时,而不是整个目录24小时。这是我的代码到目前为止...谢谢你的帮助。 :)
<?php
$target = "users/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)
&& ($_FILES["uploaded"]["type"] == "html"))
{
echo "File: " . $_FILES["uploaded"]["name"] . "<br />";
echo "Type: " . $_FILES["uploaded"]["type"] . "<br />";
echo "Size: " . ($_FILES["uploaded"]["size"] / 1024) . " Kb<br />";
echo "Location: /users/" . $_FILES["uploaded"]["name"];
}
else {
echo "Sorry, " . $_FILES["uploaded"]["name"] . " is not a valid HTML document. Please try again.";
unlink . $_FILES["uploaded"]["name"];
}
?>
答案 0 :(得分:0)
使用Cron
每10分钟执行一次此脚本(更好30或60)
$Time=time();
foreach(glob('/users/*') as $file){
if(filemtime($file)+60*60*24<$Time){
unlink($file);
}
}
答案 1 :(得分:0)
不完全,但它提出了一个想法..
foreach(glob("/users/YOUR_USER/*") as $file) {
$file = "/users/YOUR_USER/".$file;
if ((time() - filectime($file)) >= 86400) {
// delete me
}
}
答案 2 :(得分:0)
如果您使用的是Windows服务器,请使用Windows Scheduler运行批处理文件: Batch file to delete files older than N days
否则,只需设置一个CRON作业。
答案 3 :(得分:0)
在脚本末尾包含以下脚本。不要忘记用正确的路径替换/var/www/uploads/
。其他明智的所有文件将在不同的地方删除。
$files=shell_exec('find /var/www/uploads/ -mmin +1440');
$file = explode("\n",$files);
if(isset($file) && is_array($file))
{
foreach($file as $val)
{
@unlink($val);
}
}
上述代码适用于基于Linux / UNIX的托管。