【问题标题】:set image expiry date [closed]设置图像到期日期[关闭]
【发布时间】:2016-07-04 04:44:04
【问题描述】:
我有一个电子商务网站,人们通常会上传图片以便在产品项目上设置图片。For example: A person who need his photo on the cake can upload his picture。现在我在想有没有办法在图片上添加有效期。实际上删除图片在那之后。
如果可能的话,我该如何实现?
如果这是不可能的,那么我是否必须在图像的属性中添加一些信息,例如到期时间,然后通过图像文件夹运行脚本来删除那些时间已过期的图像?
如果都不行怎么办?
【问题讨论】:
标签:
javascript
php
jquery
【解决方案1】:
如果我理解你的意思,你想自动清理你的图像文件夹。
不,不可能在一段时间后告诉文件“自我删除”。
您必须设置一个 cronjob,它会扫描文件夹并为您执行删除操作。
在您的服务器上使用此代码创建一个 PHP 文件并执行它,例如每天一个 cronjob。
<?php
//Folder containing all images
$dir = '/my/image/folder/';
//max age for an image (in seconds)
// 2592000sec = 30days
$delafter = 2592000;
$imgs = scandir( $dir );
foreach( $imgs as $img ){
if( $img != '.' && $img != '..' ){
$age = filemtime( $dir.'/'.$img );
if( ( $age + $delafter ) < time() ){
if( unlink( $dir.'/'.$img ) ){
$log[] = 'Deleted: '.$img;
}
else{
$log[] = 'Error deleting:'.$img;
}
}
else{
$log[] = 'Left: '.$img;
}
}
}
header( 'Content-type:text/plain; charset=utf-8' );
echo implode( "\r\n", $log );
?>
如果不是所有图像都应在同一时间后删除,您可以有不同的文件夹,或者您可以将每个文件的$delafter 保存在数据库中。