【问题标题】: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 保存在数据库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      相关资源
      最近更新 更多