Помощник
|
Загрузка и вывод изображений попарно |
ragexl
|
Сообщение
#1
|
||
|
|
||
|
|||
Wins |
18.8.2013, 15:16;
Ответить: Wins
Сообщение
#2
|
|
Спрошу тут, чтоб новую тему не создовать, вроде вопрос соответвует теме.
Мне нужно загрузить изображение в две папки. папка1 и папка2, изображение одно и тоже делаю так [PHP] $directory = 'тут полный путь/image/'; $allowed_types = array('jpg','jpeg','png','gif','PNG','GIF','JPG','JPEG'); if(isset($_POST['submit'])) { if(file_exists($directory)) { if(is_uploaded_file($_FILES['img']['tmp_name'])) { $filename = basename($_FILES['img']['name']); $img = "".time()."".$filename; $src = $_FILES['img']['tmp_name']; $target = $directory.$img; $types = explode(".", $filename); if(in_array($types[1], $allowed_types)) { move_uploaded_file($src,$target); } } } }[/PHP] [PHP]<input name="img" type="file">[/PHP] Для воторого изображение дублирую этот же код, чтоб не было каких либо не стыковок ,пока проверял работает или нет, добавил к примеру всем переменным вконце "s" в инпуте сответсвенно Для первого [PHP]<input name="img" type="file">[/PHP] Для воторого [PHP]<input name="imgs" type="file">[/PHP] Все работает, только правильно ли так делать? Или можно внутри этого кода добавить еще один путь загрузки? Просто я пытался, но так и не получилось(( |
|
|
DoctorX |
18.8.2013, 15:31;
Ответить: DoctorX
Сообщение
#3
|
|
[PHP]move_uploaded_file($src,$target);
copy($target, $target2);[/PHP] -------------------- |
|
|
Wins |
18.8.2013, 15:44;
Ответить: Wins
Сообщение
#4
|
|
О спасибо Doc.X, работает :)
|
|
|
ragexl
|
Сообщение
#5
|
|
Я не могу понять как сделать, чтобы пользователь загружал картинку и она автоматически вставлялась в запись. Как сделать выборку из базы данных, чтобы
в запись вставлялись именно картинки, загруженные этим пользователем. |
|
|
Wins |
19.8.2013, 8:02;
Ответить: Wins
Сообщение
#6
|
|
А как загрузить два разных изображения в две разные папки?
[PHP]//Загрузка файлов на сервер. $directory = '/полный путь/images/'; //Путь к директории для загрузки картинок $directorys = '/полный путь/папка/images/'; //Второй путь к директории для загрузки картинок $allowed_types = array('jpg','jpeg','png','gif','PNG','GIF','JPG','JPEG'); // Массив допустимых типов // Если нажата кнопка загрузки if(isset($_POST['submit'])) { // Проверяем, существует ли директория для загрузки if(file_exists($directory)) { foreach( $_FILES['img']['tmp_name'] as $key=>$tmp) { // Был ли загружен файл if(is_uploaded_file($_FILES['img']['tmp_name'][$key])) { $filename = basename($_FILES['img']['name'][$key]);//Имя файла $img = "".time()."".$filename; // Новое имя файла $two_img = "".time()."".$filename; // Новое имя файла $src = $_FILES['img']['tmp_name'][$key]; //Источник $target = $directory.$img; //Путь для загрузки $target2 = $directorys.$two_img; //Путь для загрузки $type = explode(".", $filename); //Получаем тип файла обращаясь к ключу $type[1] // Проверяем соответствия расширения загруженного файла допустимым if(in_array($type[1], $allowed_types)) { move_uploaded_file($src,$target); copy($src,$target2); } } } } }[/PHP] Но это явно не то,в базу записывается дважды переменная, $two_img, а два изображения грузяться только в первую папку, которая в $directory. Как то получалось чтоб и во вторую грузилось, но всеравно не так как надо. Не могу разобраться как загрузить то что в $img грузилось в $directory А $two_img в $directorys И чтоб в бд всатвлялось правильно. И чтоб в $directorys можно было загружать только формат png, ну или без этого, главное чтоб загружалось правильно. Всю ночь пытаюсь сделать, а все никак не получается (( |
|
|
Wins |
19.8.2013, 9:03;
Ответить: Wins
Сообщение
#7
|
|
Что то ничего не могу найти, вроде я так понял, что монжо загружать одним скриптом, несколько файлов в одну папку, это я разобрался как сделать, а если разные файлы надо загрузить в разные папки, то одним обработчиком не получится?
|
|
|
Wins |
22.8.2013, 9:22;
Ответить: Wins
Сообщение
#8
|
|
|
По предыдущим вопросам разобрался.
Сейчас хочу загрузить одновременно например 3 изображения таким способом [PHP]switch((isset($_GET['page'])?$_GET['page']:'add_file')){ case 'success': $true='Файл успешно загружен!'; break; default: case 'add_file': if( $_SERVER['REQUEST_METHOD'] == 'POST' ) { if (isset($_POST['submit'])){ //Загрузка файлов на сервер. $directory = '/полный_путь/images/'; //Путь к директории для загрузки картинок $allowed_types = array('jpg','jpeg','png','gif','PNG','GIF','JPG','JPEG'); // Массив допустимых типов // Проверяем, существует ли директория для загрузки if(file_exists($directory)) { foreach($_FILES['file']['tmp_name'] as $key=>$filenames) { // Был ли загружен файл if(is_uploaded_file($_FILES['file']['tmp_name'][$key])) { $filename = basename($_FILES['file']['name'][$key]); //Имя файла $file = "".time()."".$filename; // Новое имя файла $src = $_FILES['file']['tmp_name'][$key]; //Источник $target = $directory.$file; //Путь для загрузки $type = explode(".", $filename); //Получаем тип файла обращаясь к ключу $type[1] // Проверяем соответствия расширения загруженного файла допустимым if(in_array($type[1], $allowed_types)) { move_uploaded_file($src,$target);//Загружаем изображение //Масштабируем изображение до 400 пикселей $it = Image_Transform::factory('GD'); //загрузка исходного файла $it->load(''.$directory.''.$file.''); //масштабирование его до 400 пикселей $it->scaleMaxLength(400); //сохранение в другом файле $it->save(''.$directory.''.$file.''); header('Location: ?page=success'); } else {$false='Ошибка! Недопустимый формат!';} } else {$false='Ошибка! Файл не загружен!';} } } } } } [/PHP] И форма <form action="/upload.html?page=add_file" enctype="multipart/form-data" method="post" name="form"> <label title="Загрузка изображний">Загрузка изображний <b>*</b></label> <input class="inp" name="file[]" type="file"> <input class="inp" name="file[]" type="file"> <input class="inp" name="file[]" type="file"> <br> <input type="submit" name="submit" class="formbutton" value="Добавить"> </form> И получается все работает,но только все инпуты должны быть заполнены. А если я хочу загрузить только один фаил, а два поля оставить пустыми, то не грузится. Как бы так сделать чтоб загрузка работала, если в инпуте есть хотя бы один фаил? Получилсоь сделать как надо добавив count [PHP]if(is_uploaded_file($_FILES['file']['tmp_name'][$key]) & ($count = count($key) > 0) )[/PHP] Только не срабатывает [PHP]else {$false='Ошибка! Недопустимый формат!';}[/PHP] Если грузить только один файл неверного формата, вместо этого 'Ошибка! Недопустимый формат!' пишет 'Ошибка! Файл не загружен!' Неверный формат пишет, только если во всех трех инпутах будут файлы с неверным форматом.
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Ручной обмен, ввод/вывод электронных валют | ЮMoney, WMZ, Крипта, Приват, Монобанк | Низкие комиссии, минимальные суммы сделок быстро, удобно, по доступному курсу |
200 | Sostavitel | 98250 | 11.2.2024, 21:07 автор: Wolfhound |
|
Sbitcoin.ru – Ввод, Вывод, Обмен: Qiwi, YD, Btc, Btc-e, PM, Cash IN, PR24, MG, WU, Нал (RU, UA). | 9 | sbitcoinru | 6784 | 10.10.2023, 19:25 автор: Sbitcoin |
|
BuxarVideoUploader - Автоматическое скачивание и загрузка видео из любых/ на любые видео хостинги (YouTube, TikTok, Instagram, Facebook, Яндекс Дзен, Вконтакте, Одноклассники, Rutube, Dailymotion, d.tube, Telegram и т.д. | 0 | BuxarNET | 1227 | 19.7.2023, 5:58 автор: BuxarNET |
|
Продается сайт фотосток ИИ изображений Хороший вариант! |
20 | alexey | 3279 | 25.6.2023, 15:28 автор: alexey |
|
Обмен WebMoney - Яндекс - QIWI. Вывод/ввод Приват24 UAH | 225 | himin | 132911 | 7.5.2023, 13:26 автор: Вера_Симонова |
Текстовая версия | Сейчас: 25.4.2024, 1:25 |