我正在php
开发一个使用外部应用程序生成图像的Web服务。生成后,将图像文件插入到html页面中。像这样:
<img src="img/52454879c7158.png">
查看文件后,不再需要它。但最终在一个带有图片的文件夹中积累了大量文件。如何自动删除文件?
答案 0 :(得分:1)
删除时间只需使用unlink
unlink(folder/filename);
实施例
unlink("folder/images/image_name.jpeg");
使用php删除图像后显示图像
$imageUrl = "/images/123.jpg"; // link to image
$imginfo = getimagesize($imageUrl); // get mime info
header("Content-type: " . $imginfo['mime']); // add Content-type header
readfile($imageUrl); // show image
unlink($imageUrl); // delete image
答案 1 :(得分:1)
你应该定期删除unix程序找到的特定目录中的文件。 在您的特定情况下,您需要从超过1天的img文件夹中删除所有图像文件。
这是完成该任务的crontab条目:
命令是
crontab -l
Linux Crontab格式
MIN HOUR DOM MON DOW CMD
0 0 * * * /usr/bin/find /yourpathto/img/ -type f -name '*.png' -mtime +1 -exec rm {} \;
(一行中的所有内容)
代码每天午夜/usr/bin/find
运行程序(0 0 * * *)
。
它检查名为/yourpathto/img
的目录,查找作为文件的所有内容(-type f
),
的名称以.png(-name'* .png')结尾,并在1天前或之前(-mtime +1
)创建。
然后,该命令对所有这些文件(-exec rm {} \;)
执行rm(删除)。
或者,您可以使用*.*
删除/yourpathto/img/*.*
设置crontab后,它会自动运行并从/yourpathto/img/
目录中删除所有文件。
删除文件的替代选项:
function removeall()
{
$files = glob('path/to/img/*'); // get all file names
foreach($files as $file){ // iterate files
// Here you should make one condition that if user has view / download this file and remove it
if(is_file($file))
unlink($file); // delete file
}
}
在这里,您应该应用一些内容,如果用户有下载文件,则会调用此函数来删除文件。