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

Тема в разделе "PHP", создана пользователем vanderv, 4 дек 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. vanderv

    vanderv

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

    Помогите придумать логику избегания этого?
     
  2. Phrack

    Phrack

    Регистр.:
    3 ноя 2010
    Сообщения:
    264
    Симпатии:
    38
    заменить свф аплоадер на поля для загрузки картинок input и забирать картинки после сабмита?
     
  3. vanderv

    vanderv

    Регистр.:
    30 май 2009
    Сообщения:
    270
    Симпатии:
    12
    не, тут важно
    1. процессбар
    2. мультизагрузка
     
  4. Phrack

    Phrack

    Регистр.:
    3 ноя 2010
    Сообщения:
    264
    Симпатии:
    38
    1. банить таких пользователей =)
    2. вместе со статьей отправлять еще и список картинок, загруженных пользователем. По крону ежедневно чистить папку с загруженными картинками, и удалять все, которых нет в бд
     
  5. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    делал следующим образом
    загружал картинки в какую-то темповскую директорию, имя файлам давал как метка времени + расширение
    PHP:
    list($usec$sec) = explode(' 'substr(microtime(), 2));
    // кок расширение файла подогнать ...
    $fileName =   substr($sec.$usec015) . '.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], 010);
                    
    $t time(); 
                     if(
    floor( ($t $a ) / 86400) > 1){
                         @
    unlink('tmpDir' .$value);
                     }   
                }
            }
    -------
    ну или при загрузке загружать файлы каждый раз в новый каталог, к примеру с именем даты ... "12.01.2010", и по крону удалять папку с датой меньшей на сутки текущей...

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

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

    ------------------
    если кто знает более человеческий или элегантный способ с удовольствием бы взглянул
     
    vanderv и latteo нравится это.
Статус темы:
Закрыта.