X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Загрузка и вывод изображений попарно
ragexl
ragexl
Topic Starter сообщение 18.8.2013, 14:19; Ответить: ragexl
Сообщение #1


Пытаюсь сделать небольшой скрипт голосования.
В общем мне нужно чтобы пользователь сайта через такую форму загружал 2 изображения
[img]http://img850.imageshack.us/img850/3663/f06h.jpg[/img], и как он нажмет кнопку добавить, изображения сразу же выводились на страницу парой. Если другой пользователь делает то же самое то к примеру ниже предыдущих выводятся другие 2 изображения, и так далее.

Я в принципе понимаю, что изображения (имя или id) нужно помещать в базу, а затем выводить их оттуда, но как сделать на практике, чтобы они выводились попарно как их добавляли я не знаю.

Если кто знает как это сделать помогите пожалуйста, буду очень благодарен.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
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
DoctorX
сообщение 18.8.2013, 15:31; Ответить: DoctorX
Сообщение #3


[PHP]move_uploaded_file($src,$target);
copy($target, $target2);[/PHP]


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
Wins
сообщение 18.8.2013, 15:44; Ответить: Wins
Сообщение #4


О спасибо Doc.X, работает :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ragexl
ragexl
Topic Starter сообщение 18.8.2013, 23:54; Ответить: ragexl
Сообщение #5


Я не могу понять как сделать, чтобы пользователь загружал картинку и она автоматически вставлялась в запись. Как сделать выборку из базы данных, чтобы
в запись вставлялись именно картинки, загруженные этим пользователем.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
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
Wins
сообщение 19.8.2013, 9:03; Ответить: Wins
Сообщение #7


Что то ничего не могу найти, вроде я так понял, что монжо загружать одним скриптом, несколько файлов в одну папку, это я разобрался как сделать, а если разные файлы надо загрузить в разные папки, то одним обработчиком не получится?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Wins
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]

Если грузить только один файл неверного формата, вместо этого 'Ошибка! Недопустимый формат!' пишет 'Ошибка! Файл не загружен!'

Неверный формат пишет, только если во всех трех инпутах будут файлы с неверным форматом.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Ручной обмен, ввод/вывод электронных валют | Ю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
автор: Вера_Симонова


 



RSS Текстовая версия Сейчас: 25.4.2024, 1:25
Дизайн