Web服务中的映像文件管理

时间:2013-09-27 09:30:08

标签: php image web-services

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

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

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

2 个答案:

答案 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
    }
}

在这里,您应该应用一些内容,如果用户有下载文件,则会调用此函数来删除文件。