我有一个电子商务网站,人们通常上传图片以便在产品项目上设置图像。For example: A person who need his photo on the cake can upload his picture
。现在我想的是有什么方法可以在图像上添加到期日期。实际上在此之后删除图像。
如果可能,我该如何实现?
如果这不可能,那么我是否必须在图像属性中添加一些信息,例如到期时间,然后在图像文件夹中运行脚本,删除那些时间已过期的图像?
如果它们都不可能我该怎么办?
答案 0 :(得分:2)
如果我理解你的观点,你想自动清理你的图像文件夹。
不,一段时间后无法告诉文件“自行删除” 您必须设置一个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
。