我正在开发一个php
使用外部应用程序生成图像的 Web 服务。生成后的图像文件被插入到html页面中。像这样:
<img src="img/52454879c7158.png">
查看文件后,不再需要它。但最终在一个带有图片的文件夹中堆积了大量的文件。如何自动删除文件?
我正在开发一个php
使用外部应用程序生成图像的 Web 服务。生成后的图像文件被插入到html页面中。像这样:
<img src="img/52454879c7158.png">
查看文件后,不再需要它。但最终在一个带有图片的文件夹中堆积了大量的文件。如何自动删除文件?
您应该定期删除 unix 程序找到的特定目录中的文件来救援。在您的特定情况下,您需要从 img 文件夹中删除超过 1 天的所有图像文件。
这是完成此任务的 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
)。然后该命令对所有这些文件执行 rm(删除)(-exec 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
}
}
在这里你应该应用一些东西,如果用户有下载文件,那么这个函数将被调用来删除文件。
删除时间只需使用取消链接
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