2016-03-17 3 views
-1

У меня есть сайт электронной коммерции, где люди обычно загружают изображения, чтобы устанавливать изображения на товарные позиции. For example: A person who need his photo on the cake can upload his picture. Что я думал о том, есть ли способ добавить дату истечения срока действия на изображение. Это фактически удаляет изображения после этого времени.set Срок действия истечения срока годности

Если возможно, как я могу это достичь?

Если это невозможно, нужно ли мне добавить некоторую информацию внутри свойств изображения, например, время истечения срока действия, а затем запустить скрипт через папку изображений, удалив те изображения, время которых истекло?

Если ни одно из них не является возможным, что мне делать?

ответ

2

Если я правильно понимаю вашу точку зрения, вы хотите автоматически очистить папки изображений.

Нет, невозможно сообщить файлу о «самоуничтожении» через некоторое время.
Вы должны установить cronjob, который сканирует папку и делает удаление для вас.

Создайте файл PHP с этим кодом на своем сервере и выполните его, например. каждый день кроной.

<?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 для каждого файла в базе данных.

Смежные вопросы