За последние 24 часа нас посетили 17585 программистов и 1723 робота. Сейчас ищут 1914 программистов ...

Как загрузить и обработать несколько изображений?

Тема в разделе "PHP для новичков", создана пользователем Tures, 3 фев 2013.

  1. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    он уже разобрался с этим моментом через крон =)
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    отредактировав сообщение, ага)))
     
  3. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    Ну я имею ввиду если сейчас 00:01, то очистить папку ./uploads

    //
    Крон не помог.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    логикой-то поделитесь? зачем чистить этот каталог?
     
  5. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    Чтобы место не занимать на сервере.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чтобы не занимать, убивайте файлы после обработки, если не считаете нужным их хранить.
     
  7. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    Как добавить массив изображений в функцию - $zip->open("archive.zip", ZIPARCHIVE::CREATE); //Открываем (создаём) архив archive.zip
    $zip->addFile("index.php"); //Добавляем в архив файл index.php
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    мож пора уже учиться голову использовать и проитерировать массив изображений выполняя в теле "$zip->addFile("index.php"); //Добавляем в архив файл index.php"?

    и потом, зачем zip? изображения сложно сжать. жипег например и без того сжат. бессмысленное износилование процессорного времени.
    если соображение "не хранить много мелких файлов а поместить в один большой" то это в сторону тарбола смотрите
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Это решение некой задачи. Огласите пожалуйста задачу, возможно мы найдём решение лучше.
     
  10. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    У меня скрипт накладывает текст на изображения и выводит их. Нужно чтобы пользователь смог загрузить сразу все изображения, а не сохранять их по-одному.
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ок, тогда зип без сжатия.
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    можно на почту отправить ышо =)
     
  13. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    Код (Text):
    1.  
    2. $zip = new ZipArchive(); //Создаём объект для работы с ZIP-архивами
    3.   $zip->open('photos.zip', ZIPARCHIVE::CREATE); //Открываем (создаём) архив
    4.   $zip->addFile($new_name);
    5.   $zip->close(); //Завершаем работу с архивом
    когда имя архива photos.zip, в него загружаются все изображения, но если его имя - photos.$i..zip то получается 2 разных архива, как сделать чтобы при загрузке нескольких файлов в цикле они добавлялись в один архив, а при следующей тоже в один, но с другим именем.
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    хорошо
     
  15. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    Так как реализовать-то?
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чувак. ты ж даже код показал. =) в чем затык-то?
     
  17. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    все смог)
     
  18. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    "... но никому не скажу как"
    вот так всегда :(
     
  19. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    Просто распределил в цикле правильно, так чтобы генерировался архив с именем в котором есть текущая минута, и дальше он добавляет в цикле изображения в этот архив.

    Код (Text):
    1. $zip = new ZipArchive(); //Создаём объект для работы с ZIP-архивами
    2.                 $zip->open('uploads/photos_'.date('hi').$ip.'.zip', ZIPARCHIVE::CREATE); //Открываем (создаём) архив
    3.                 // тут вызов watermark_text( $temp2, $new_name )
    4.                 // добавляем водяной знак: watermark_text() - для текста, watermark_image() - для изображения
    5.                 if(watermark_text($temp2, $new_name))
    6.                     if(!empty($new_name)){
    7.                     $zip->addFile($new_name, 'photo_'.$i.'.jpg');
    8.                     $zip->close(); //Завершаем работу с архивом
    Добавлено спустя 3 минуты 52 секунды:
    Меня сейчас больше волнует, как сделать так чтобы - если выводится одно изображение, то ничего не выводится, а если больше 1, то выводится
    <style>#ddarch{display:none;}</style>
    if($i>0){print'<style>#ddarch{display:none;}</style>';} не работает.
     
  20. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    когда ж вы на русском научитесь задачи формулировать?
    что вы мечтаете сделать?
     
  21. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    если пользователь загрузил 1 картинку и скрипт ее выдал, то ничего нет.
    а если пользователь загрузил 2 и более, то выводится ссылка - скачать все.
     
  22. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    // этап обработки
    в районе итерации загруженных файлов инкременируйте какую-нибудь переменную, например processed_images

    // этап показа
    показали все (или одно) изображения загруженные пользователем и если processed_images > 1 - показали ссылку на архив
     
  23. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    В цикл можно?
    Код (Text):
    1. if( isset( $_POST['createmark'] ) && 'Submit' == $_POST['createmark'] && isset( $_FILES['imgfile'] ) )
    2. {
    3.  
    4.     for( $i = 0; $i < $upload_files_cnt; $i++ )
    5.     {
     
  24. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    что можно в цикл?
     
  25. Tures

    Tures Активный пользователь

    С нами с:
    3 фев 2013
    Сообщения:
    40
    Симпатии:
    0
    я просто не понял где инкременировать переменную, в цикле или за циклом.