Как добавить массив изображений в функцию - $zip->open("archive.zip", ZIPARCHIVE::CREATE); //Открываем (создаём) архив archive.zip $zip->addFile("index.php"); //Добавляем в архив файл index.php
мож пора уже учиться голову использовать и проитерировать массив изображений выполняя в теле "$zip->addFile("index.php"); //Добавляем в архив файл index.php"? и потом, зачем zip? изображения сложно сжать. жипег например и без того сжат. бессмысленное износилование процессорного времени. если соображение "не хранить много мелких файлов а поместить в один большой" то это в сторону тарбола смотрите
У меня скрипт накладывает текст на изображения и выводит их. Нужно чтобы пользователь смог загрузить сразу все изображения, а не сохранять их по-одному.
Код (Text): $zip = new ZipArchive(); //Создаём объект для работы с ZIP-архивами $zip->open('photos.zip', ZIPARCHIVE::CREATE); //Открываем (создаём) архив $zip->addFile($new_name); $zip->close(); //Завершаем работу с архивом когда имя архива photos.zip, в него загружаются все изображения, но если его имя - photos.$i..zip то получается 2 разных архива, как сделать чтобы при загрузке нескольких файлов в цикле они добавлялись в один архив, а при следующей тоже в один, но с другим именем.
Просто распределил в цикле правильно, так чтобы генерировался архив с именем в котором есть текущая минута, и дальше он добавляет в цикле изображения в этот архив. Код (Text): $zip = new ZipArchive(); //Создаём объект для работы с ZIP-архивами $zip->open('uploads/photos_'.date('hi').$ip.'.zip', ZIPARCHIVE::CREATE); //Открываем (создаём) архив // тут вызов watermark_text( $temp2, $new_name ) // добавляем водяной знак: watermark_text() - для текста, watermark_image() - для изображения if(watermark_text($temp2, $new_name)) if(!empty($new_name)){ $zip->addFile($new_name, 'photo_'.$i.'.jpg'); $zip->close(); //Завершаем работу с архивом Добавлено спустя 3 минуты 52 секунды: Меня сейчас больше волнует, как сделать так чтобы - если выводится одно изображение, то ничего не выводится, а если больше 1, то выводится <style>#ddarch{display:none;}</style> if($i>0){print'<style>#ddarch{display:none;}</style>';} не работает.
если пользователь загрузил 1 картинку и скрипт ее выдал, то ничего нет. а если пользователь загрузил 2 и более, то выводится ссылка - скачать все.
// этап обработки в районе итерации загруженных файлов инкременируйте какую-нибудь переменную, например processed_images // этап показа показали все (или одно) изображения загруженные пользователем и если processed_images > 1 - показали ссылку на архив
В цикл можно? Код (Text): if( isset( $_POST['createmark'] ) && 'Submit' == $_POST['createmark'] && isset( $_FILES['imgfile'] ) ) { for( $i = 0; $i < $upload_files_cnt; $i++ ) {