1

我正在开发一个php使用外部应用程序生成图像的 Web 服务。生成后的图像文件被插入到html页面中。像这样:

<img src="img/52454879c7158.png">

查看文件后,不再需要它。但最终在一个带有图片的文件夹中堆积了大量的文件。如何自动删除文件?

4

2 回答 2

1

您应该定期删除 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
    }
}

在这里你应该应用一些东西,如果用户有下载文件,那么这个函数将被调用来删除文件。

于 2013-09-27T10:08:48.087 回答
1

删除时间只需使用取消链接

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
于 2013-09-27T09:55:39.263 回答