Удалить если статья не опубликована

Статус
В этой теме нельзя размещать новые ответы.

vanderv

Старатель
Регистрация
30 Май 2009
Сообщения
270
Реакции
12
Есть страница где пользователь публикует статью.
Там стоит swf-uploader. Он сразу грузит все картинки на сервер... И получается если пользователь отказался публиковать или просто закрыл страницу - картинка будет засорять сервер.

Помогите придумать логику избегания этого?
 
заменить свф аплоадер на поля для загрузки картинок input и забирать картинки после сабмита?
 
не, тут важно
1. процессбар
2. мультизагрузка
 
1. банить таких пользователей =)
2. вместе со статьей отправлять еще и список картинок, загруженных пользователем. По крону ежедневно чистить папку с загруженными картинками, и удалять все, которых нет в бд
 
делал следующим образом
загружал картинки в какую-то темповскую директорию, имя файлам давал как метка времени + расширение
PHP:
list($usec, $sec) = explode(' ', substr(microtime(), 2));
// кок расширение файла подогнать ...
$fileName =   substr($sec.$usec, 0, 15) . '.xxx'

ну а потом по крону килял все файлы загруженные больше суток
( ну чтоб не удалить те которые загрузили чуть ранее запуска крона )
PHP:
        $arr = scandir('tmpDir');

        array_shift($arr); 
        array_shift($arr);
        foreach ($arr as $value) {
            if(preg_match("/\d+/", $value, $xx)){
                $a = (int)substr($xx[0], 0, 10);
                $t = time(); 
                 if(floor( ($t - $a ) / 86400) > 1){
                     @unlink('tmpDir' .$value);
                 }   
            }
        }

-------
ну или при загрузке загружать файлы каждый раз в новый каталог, к примеру с именем даты ... "12.01.2010", и по крону удалять папку с датой меньшей на сутки текущей...

ну а когда юзер подтвердил "публикацию" статьи то картинки уже забирать с темповской папки

а базу, как по мне, то сюда лучше не привязывать, только лишняя нагрузка

------------------
если кто знает более человеческий или элегантный способ с удовольствием бы взглянул
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху