Загрузка изображений в директорию и добавление данных в БД

Статус
В этой теме нельзя размещать новые ответы.

El Diablo

Доброе зло
Господа, а вот еще такой вопрос, а как можно реализовать загрузку по такой схеме Выбирается 1 изображение категория "до", выбирается 2ое изображение категория "после", и после загрузки они попадают в одну запись в таблице (под одним ID) но разные поля.

доипосле.jpg
 

sakon

П..и.н..ок
В форме сделать 2 поля -
<input type="file" name="uploadfile1" value="Обзор">
<input type="file" name="uploadfile2" value="Обзор">
и дальше каждое из них обработать.
Кинуть в базу
$tes = "INSERT INTO pic42(before,after) VALUES('".$uploadfile1."', '".$uploadfile2."')";
 

El Diablo

Доброе зло
Я так пологаю:

PHP:
<?php
if (!empty($_FILES['uploadfile']['name']))
{
    $uploaddir1='files/do_i_posle_before/';
		    $uploaddir2='files/do_i_posle_after/';
    $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
	    $uploadfile2 = $uploaddir.basename($_FILES['uploadfile']['name']);
//  echo $uploadfile.'<br>';

    if (!is_uploaded_file($_FILES['uploadfile']['tmp_name']))
    {
        echo 'ошибка передачи файла';
    }
    else
    {

        if(move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
        {
            $tes = "INSERT INTO pic4(before_pic ,after_pic) VALUES('".$uploadfile1."', '".$uploadfile2."')";
 //        echo $tes.'<br>';
            $res = mysql_query($tes);
            if($res) echo "Файл упешно загружен";
            else echo "Путь не добавлен в базу данных, но файл загружен ".mysql_error();
        }
        else echo "Файл не загружен, ";
    }
}
?>

<html>
<title>Загрузка файла</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="uploadfile1" value="Обзор">
<input type="file" name="uploadfile2" value="Обзор">
<input type="submit" value="ok">
</body>
</html>
Обработать даные как данные и данные2, что то на подобии:

PHP:
        if(move_uploaded_file($_FILES['uploadfile1']['tmp_name'] && ($_FILES['uploadfile2']['tmp_name'], $uploadfile1,$uploadfile1))
Имею в виду когда указываю двое данных они идут же как "даные1" и "даные2" через &&?

P.S. Имя таблици я изменил на pic4
 

sakon

П..и.н..ок
PHP:
 if(move_uploaded_file($_FILES['uploadfile1']['tmp_name'],$uploadfile1)  && move_uploaded_file($_FILES['uploadfile2']['tmp_name'],$uploadfile2))
И еще. Лучше КМК не плодить дериктории after, before и т.д, а добавить эти after и before к имени файла
 

El Diablo

Доброе зло
Все получилось, моя основная ошибка в том что я пытался сделать по такой модели:
"Загружаемые данные 1" и "Загружаемые данные 2", "переменная 1" и "переменная 2"

,а следовало:
"Загружаемые данные 1","переменная 1" и "Загружаемые данные 2", "переменная 2"

И еще не знаю почему так сработало, когда стоят два амперсента, то и 1 часть работает и 2ая, но когда стоит AND то работает только первая часть, почитал ссылку workOnFood и там написано, что && имеет намного больше привилегий чем AND, вот этого я и не знал, думал, что одно альтернатива другого. Век живи, век учись :)

Ребят все супер! всем огромнейшее мегаспасибо! Низкий вам поклон!!
 

El Diablo

Доброе зло
Доброго времени суток, после написания и полного разбора кода по вставке 2ух изображений встало 3 вопроса:

1. Ренейм файла.
2. Ресайз изображения (если грузят большое изображение, что бы резалось под стандар 800х600 и миниатюрное 200х150)
3. Водяной знак..

Из всего этого я справился с водяным знаком, нашел урок и через .htaccess, также нашел урок по пережиму изображения:

PHP:
<?php $old = imageCreateFromJpeg("img/JmuX572Ieww.jpg");
				$w = imageSX($old);
				$h = imageSY($old);
				$w_new=round($w/2);
				$h_new=round($h/2);
				$new = imageCreate($w_new, $h_new);
				imageCopyResized($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w, $h);
				imageJpeg($new, "img/JmuX572Ieww2.jpg");
				imageDestroy($old);
				imageDestroy($new);?>
( это я вставлял проверял рабочий ли код img/JmuX572Ieww.jpg )

Только не могу понять как совместить их, думал сделать так, что бы после основной загрузки, файлы летели в отдельный php файл в котором бы вытаскивались из глобального массива $_POST вытягивались переменными и вставлялись бы в нужные значения, и они же заносились в базу, получается возвращались обратно в файл который их отослал и заносился бы в базу? или я придумываю велосипед =)?
 

workOnFood

Новичок
Делай в одном файле. При твоем уровне знаний важна наглядность.
 

workOnFood

Новичок
Фигня. Пусть разделяет задачи.
Я не просто так это ляпнул) Сужу по собственному опыту. Если ты слабо представляешь как все там работает и считаешь возможным передавать параметры в функцию используя &&, надо чтобы все было перед глазами. У него так и так не получиться нормальная архитектура. Думаю для ТС это лишняя информация на данном этапе.
 

sakon

П..и.н..ок
Я не просто так это ляпнул) Сужу по собственному опыту. Если ты слабо представляешь как все там работает и считаешь возможным передавать параметры в функцию используя &&, надо чтобы все было перед глазами. У него так и так не получиться нормальная архитектура. Думаю для ТС это лишняя информация на данном этапе.
В чем то ты прав, но для начала лучше, что бы чел умел разделить задачи.
Это поможет ему работать с классами.
 

El Diablo

Доброе зло
sakon ренейм нужен для того, что когда будут загружать фото, они друг друга не заменили, т.к. если отфотографировали вещь создалось допустим 1.jpg,2.jpg,3.jpg -выгрузили с фотоаппарата удалили папку, начинают фотографировать он такие же названия создает, человек снова загружает и получается что будет 2 записи с одним и тем же файлом.

А вот по поводу разделения задач почитал бы с удовольствием инфу, а то толку, что мне подсказывают пишут код, хотя на вашем sakon примере разобрался как и что работает. Для полного понимания я беру и расписываю полностью все шаги и зарисовываю =)
 

sakon

П..и.н..ок
А вот по поводу разделения задач почитал бы с удовольствием инфу, а то толку, что мне подсказывают пишут код, хотя на вашем sakon примере разобрался как и что работает. Для полного понимания я беру и расписываю полностью все шаги и зарисовываю =)
Так здесь все просто :)
Задача № раз - загрузить и присвоить имя (это именно одна задача); // Кстати. А как узнать сколько файлов загружаем?
Задача № два - опредилить что загрузили. (Опа! А мы точно загрузили картинку?) // А может не загружать, пока не узнаем, что подсовывают?
Задача № три - ресайз (а он нужен? Может быть картика слишком маленькая, что бы ее выводить в нужный размер?) // Ну вот. Опять. Мало того, что проверили, так еще надо убедиться, что ресайзить можно. Ужасть. Ну например - делаем картинку 200х200, а начальный размер 30х30. Не комильфо.
Задача № четыре - после того, как оредилили, что ресайз нужен - ресайзим! // Ура! (ага :) не расчитывай);
Задача № пять - Ты думал, что самое сложное закончено? Ты не прав. И даже не лев. Ты попал! Не, конечно особых проблем нет (подумаешь - наложить img на img) :D.
Как думаешь - для начала первых четырех задач хватит?
 

El Diablo

Доброе зло
sakon Все решено ! =) Скажем так решил по принципу, разжевывал функцию, смотрел что ей нужно, проверял через экхо (или результат или тру/фальш) если все норманды шел дальше, если трабла то фиксил :)

Все перебрал рученками, однако ресайз делал по видеоуроку, а что касается ватермарки сделал через .htaccess, во первых заказчику могут понадобится не штампованные варианты, а во вторых попробовал как то проще получилось правда не знаю какая нагрузка на сервер ляжет но там не больше 100 картинок среднего качества нужно будет выгрузить на страничьку.

Хочу поблагодарить за задачки, следовало изначально все разбить по процессом, а не нахрапом =)

P.S. Изначально я в этом сообщении ныл по поводу 1ой задачи, а второй раз редактирую, что уже сделал =)
 

Roman_Semeniuk

Новичок
Здрастуите, надеюс вы не против, я использовал етот код но у меня он не работает пишет
images/1.PNG
INSERT INTO img ('image') VALUE ('images/1.PNG')
Путь не добавлен в базу данных, но файл загружен No database selected
Не выбрана база даных при том што она выбрана???
<?php
require_once "db.php";
if (!empty($_FILES['uploadfile']['name']))
{
$uploaddir='images/';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
echo $uploadfile.'<br>';
if (!is_uploaded_file($_FILES['uploadfile']['tmp_name']))
{
echo 'ошибка передачи файла';
}
else
{
if(move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
{
$tes = "INSERT INTO img ('image') VALUE ('".$uploadfile."')";
echo $tes.'<br>';
$res = mysql_query($tes);
if($res) echo "Файл упешно загружен";
else echo "Путь не добавлен в базу данных, но файл загружен ".mysql_error();
}
else echo "Файл не загружен, ";
}
}
?>
<html>
<title>Загрузка файла</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="uploadfile" value="Обзор">
<input type="submit" value="ok">
</body>
</html>
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху