[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка нескольких фото
buisnesmen
Привет! У меня есть скрипт, который загружает файлы в папку, но я не могу понять, как загрузить их пути в БД.

Вот код (весь обработчик):
<?php 
include ("../blocks/bd.php");
if (isset($_POST['city'])) {$city = $_POST['city']; if ($city == '') {unset($city);}}
if (isset($_POST['pets'])) {$pets = $_POST['pets']; if ($pets == '') {unset($pets);}}
if (isset($_POST['animals'])) {$animals = $_POST['animals']; if ($animals == '') {unset($animals);}}
if (isset($_POST['anyID'])) {$anyID = $_POST['anyID']; if ($anyID == '') {unset($anyID);}}
if (isset($_POST['price'])) {$price = $_POST['price']; if ($price == '') {unset($price);}}
if (isset($_POST['torg'])) {$torg = $_POST['torg']; if ($torg == '') {unset($torg);}}
if (isset($_POST['tualet'])) {$tualet = $_POST['tualet']; if ($tualet == '') {unset($tualet);}}
if (isset($_POST['pitanie'])) {$pitanie = $_POST['pitanie']; if ($pitanie == '') {unset($pitanie);}}
if (isset($_POST['mesto'])) {$mesto = $_POST['mesto']; if ($mesto == '') {unset($mesto);}}
if (isset($_POST['phone'])) {$phone = $_POST['phone']; if ($phone == '') {unset($phone);}}
if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['login'])) {$login = $_POST['login']; if ($login == '') {unset($login);}}

$result = mysql_query("SELECT id FROM animals WHERE animals='$animals'",$db);
$myrow = mysql_fetch_array($result);
if (empty($myrow['id'])) {
$result1 = mysql_query ("INSERT INTO animals (pets,animals) VALUES ('$pets','$animals')");
}


$path_to_files = 'photo/'; // путь для сохранения файлов
// если у нас несколько полей userfile[],
// отметаем те, в которые ничего не было выбрано

$good_name = array_filter($_FILES['userfile']['name']);
if (sizeof($good_name) != 0) { // если массив файлов не пустой
foreach ($good_name as $key => $name) {
$type = $_FILES['userfile']['type'][$key];
$tmp_name = $_FILES['userfile']['tmp_name'][$key];
$size = $_FILES['userfile']['size'][$key];
// эта функция проверяет был ли загружен файл во временную директорию php
if (!is_uploaded_file($tmp_name)) {
echo "An error happened while loading. Failed.";
continue;
}
// выковыриваем имя и расширение файла -
$file_ext = substr($name, 1 + strrpos($name, "."));
// - это может понадобиться, например, для сохранения в базу данных
$file_name = substr($name, 0, strrpos($name, "."));
// делаем реальный путь в файловой системе
$real_path = realpath($path_to_files);
// создаем в нашей директории временный файл с уникальным именем,
$temp_file_name = tempnam($real_path, "UPLF");
// делаем новое, более привлекательное, имя файла для хранения на сервере
$file_name = $temp_file_name."original.".strtolower($file_ext);
// переносим загруженный временный файл в файл со сделанным нами уникальным именем
if (move_uploaded_file($tmp_name, $file_name)) {
echo "Saved!";
unlink($temp_file_name); // удаляем временный файл
}else {
echo "Failed!";
continue;
}
}
}
else {
echo "No files were loaded.";
}



function image_resize(
$source_path,
$destination_path,
$newwidth,
$newheight = FALSE,
$quality = FALSE // качество для формата jpeg
) {

ini_set("gd.jpeg_ignore_warning", 1); // иначе на некотоых jpeg-файлах не работает

list($oldwidth, $oldheight, $type) = getimagesize($source_path);

switch ($type) {
case 1: $typestr = 'gif' ;break;
case 2: $typestr = 'jpeg'; break;
case 3: $typestr = 'png'; break;
}
$function = "imagecreatefrom$typestr";
$src_resource = $function($source_path);

if (!$newheight) { $newheight = round($newwidth * $oldheight/$oldwidth); }
elseif (!$newwidth) { $newwidth = round($newheight * $oldwidth/$oldheight); }
$destination_resource = imagecreatetruecolor($newwidth,$newheight);

imagecopyresampled($destination_resource, $src_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);

if ($type = 2) { # jpeg
imageinterlace($destination_resource, 1); // чересстрочное формирование изображение
if ($quality) imagejpeg($destination_resource, $destination_path, $quality);
else imagejpeg($destination_resource, $destination_path);
}
else { # gif, png
$function = "image$typestr";
$function($destination_resource, $destination_path);
}

imagedestroy($destination_resource);
imagedestroy($src_resource);
}









if (isset($pets))
{
$result = mysql_query ("INSERT INTO board (city,pets,animals,anyID,price,torg,tualet,pitanie,mesto,phone,email,name,login,file) VALUES ('".$city."','".$pets."','".$animals."','".$anyID."','".$price."','".$torg."','".$tualet."','".$pitanie."','".$mesto."','".$phone."','".$email."','".$name."','".$login."','".$_FILES['UserFile']['name']."')");

if ($result == 'true') {echo "<html><head><link href='blocks/style/style.css' rel='stylesheet' type='text/css' /><meta http-equiv=\"refresh\" content=\"2;url=" . $_SERVER['HTTP_REFERER'] . "\"></head<body><div id='obrabotchic'>Ваше объявление опубликовано!</div></body></html>";}
else {echo "<html><head><link href='blocks/style/style.css' rel='stylesheet' type='text/css' /><meta http-equiv=\"refresh\" content=\"2;url=" . $_SERVER['HTTP_REFERER'] . "\"></head<body><div id='obrabotchic'>Ваше объявление не создано!</div></body></html>";}
}

else

{
echo "<html><head><link href='blocks/style/style.css' rel='stylesheet' type='text/css' /><meta http-equiv=\"refresh\" content=\"2;url=" . $_SERVER['HTTP_REFERER'] . "\"></head<body><div id='obrabotchic'>Вы ввели не все данные!</div></body></html>";
}
?>


как загрузить пути в БД через запятую?



Спустя 3 минуты, 10 секунд (19.10.2011 - 15:59) m4a1fox написал(а):
Так-с! Опять Поповщина smile.gif. Друг, тебе вот сюда - в первую очередь! А потом поговорим! smile.gif

Спустя 1 минута, 4 секунды (19.10.2011 - 16:00) buisnesmen написал(а):
ок smile.gif

Спустя 4 минуты, 37 секунд (19.10.2011 - 16:05) buisnesmen написал(а):
Прикольно! Столько неправильных моментов оказывается! Ну чтож буду переделывать!
А с загрузкой файлов на сервак можете подсказать?

Спустя 2 минуты, 1 секунда (19.10.2011 - 16:07) m4a1fox написал(а):
Переделаешь, красиво будет, тогда тебе многие помогут! А так! Зря время тратить, все равно все переписывать!

Спустя 2 часа, 19 минут, 2 секунды (19.10.2011 - 18:26) buisnesmen написал(а):
Сделал вот так:
<?php 
include '../blocks/bd.php';
if (!empty($_POST['city'])) $city = $_POST['city'];
if (!empty($_POST['pets'])) $pets = $_POST['pets'];
if (!empty($_POST['animals'])) $animals = $_POST['animals'];
if (!empty($_POST['aniyID'])) $anyID = $_POST['anyID'];
if (!empty($_POST['price'])) $price = $_POST['price'];
if (!empty($_POST['torg'])) $torg = $_POST['torg'];
if (!empty($_POST['tualet'])) $tualet = $_POST['tualet'];
if (!empty($_POST['pitanie'])) $pitanie = $_POST['pitanie'];
if (!empty($_POST['mesto'])) $mesto = $_POST['mesto'];
if (!empty($_POST['phone'])) $phone = $_POST['phone'];
if (!empty($_POST['email'])) $email = $_POST['email'];
if (!empty($_POST['name'])) $name = $_POST['name'];
if (!empty($_POST['login'])) $login = $_POST['login'];
if (!empty($_POST['title'])) $title = $_POST['title'];
if (!empty($_POST['description'])) $description = $_POST['description'];


$result = mysql_query("SELECT id FROM animals WHERE animals='$animals'",$db);
$myrow = mysql_fetch_assoc($result);
if (empty($myrow['id'])) {
$result1 = mysql_query ("INSERT INTO animals (pets,animals) VALUES ('$pets','$animals')");
}


if (isset($pets, $title))
{
$result = mysql_query ("INSERT INTO board (`title`, `city`, `pets`, `animals`, `anyID`, `price`, `torg`, `tualet`, `pitanie`, `mesto`, `email`, `name`, `login`, `file`, `description`)
VALUES
('"
. mysql_real_escape_string($title) ."',
'"
. mysql_real_escape_string($city) ."',
'"
. mysql_real_escape_string($pets) ."',
'"
. mysql_real_escape_string($animals) ."',
'"
. mysql_real_escape_string($anyID) ."',
'"
. mysql_real_escape_string($price) ."',
'"
. mysql_real_escape_string($torg) ."',
'"
. mysql_real_escape_string($tualet) ."',
'"
. mysql_real_escape_string($pitanie) ."',
'"
. mysql_real_escape_string($mesto) ."',
'"
. mysql_real_escape_string($email) ."',
'"
. mysql_real_escape_string($name) ."',
'"
. mysql_real_escape_string($login) ."',
'"
. mysql_real_escape_string($file) ."',
'"
. mysql_real_escape_string($description) ."'
)"

);


if ($result == 'true') {echo "<html><head><link href='blocks/style/style.css' rel='stylesheet' type='text/css' /><meta http-equiv=\"refresh\" content=\"2;url=" . $_SERVER['HTTP_REFERER'] . "\"></head<body><div id='obrabotchic'>Ваше объявление опубликовано!</div></body></html>";}
else {echo "<html><head><link href='blocks/style/style.css' rel='stylesheet' type='text/css' /><meta http-equiv=\"refresh\" content=\"2;url=" . $_SERVER['HTTP_REFERER'] . "\"></head<body><div id='obrabotchic'>Ваше объявление не создано!</div></body></html>";}
}

else
{
echo "<html><head><link href='blocks/style/style.css' rel='stylesheet' type='text/css' /><meta http-equiv=\"refresh\" content=\"2;url=" . $_SERVER['HTTP_REFERER'] . "\"></head<body><div id='obrabotchic'>Вы ввели не все данные!</div></body></html>";
}
?>

Спустя 28 минут, 6 секунд (19.10.2011 - 18:54) imbalance_hero написал(а):
buisnesmen
Какие ещё пути через запятую? Почему через запятую? В новом скрипте я вообще не вижу никакого загрузчика фоток.
Обычно фото хранится в отдельной таблице, и связка происходит фото к теме.

Спустя 21 минута, 46 секунд (19.10.2011 - 19:16) buisnesmen написал(а):
imbalance_hero, а вы можете мне на примере показать как пути в БД загружать?

Спустя 46 минут, 58 секунд (19.10.2011 - 20:03) imbalance_hero написал(а):
У тебя функция move_uploaded_file принимает 2 аргумента, откуда и куда. Переменная, отвечающая за адрес файла - это и есть адрес файла, его и надо добавлять в БД, а не всю картинку полностью. В БД ты хранишь лишь путь до картинки.

Спустя 10 минут, 20 секунд (19.10.2011 - 20:13) buisnesmen написал(а):
Цитата (imbalance_hero @ 19.10.2011 - 17:03)
У тебя функция move_uploaded_file принимает 2 аргумента, откуда и куда. Переменная, отвечающая за адрес файла - это и есть адрес файла, его и надо добавлять в БД, а не всю картинку полностью. В БД ты хранишь лишь путь до картинки.

Это я понимаю. Мне нужно занести несколько файлов сразу...

Спустя 37 минут, 55 секунд (19.10.2011 - 20:51) imbalance_hero написал(а):
buisnesmen
Зачем сразу? У тебя несколько фоток, 1 загрузил, занёс в БД, вторую загрузил - занёс в БД, в отдельные записи

Спустя 48 минут, 54 секунды (19.10.2011 - 21:40) buisnesmen написал(а):
так это же не удобно... я выбрал 6 файлов нажал загрузить и они загрузились... я хотел сделать так!

Спустя 2 минуты, 51 секунда (19.10.2011 - 21:43) imbalance_hero написал(а):
А кто мешает? Так и делай. Я говорил про внутреннюю обработку по одному файлу из темповской папки в нормальную + запись в БД повторять столько, сколько тебе надо.
Введи echo
'<pre>'.print_r($_FILES,1).'</pre>';
и увидишь свой массив, его надо перебрать через foreach.

Спустя 55 секунд (19.10.2011 - 21:44) Игорь_Vasinsky написал(а):
ну так принимай разные $_FILES['name'] и работай с ними, тебе про обработчик говорят, не про форму.

так красивей

echo '<pre>' . print_r($_FILES, 1) . '</pre>';

Спустя 2 минуты, 37 секунд (19.10.2011 - 21:47) inpost написал(а):
Игорь_Vasinsky
Некоторые серверы из-за пробелов в 3 раза медленнее обрабатывают запросы. Поэтому я бы не сказал, что так красивее smile.gif

Спустя 51 секунда (19.10.2011 - 21:47) Игорь_Vasinsky написал(а):
а я не про пробелы, я про "1"
а этому я тут у вас учусь.. такой красоте.

Спустя 1 минута, 9 секунд (19.10.2011 - 21:49) imbalance_hero написал(а):
Игорь_Vasinsky
Ты абсолютно прав, я цифру забыл smile.gif

Спустя 5 минут, 4 секунды (19.10.2011 - 21:54) Игорь_Vasinsky написал(а):
ну.. так я всегда здесь сам забывал, у себя писал.. а как здесь показат кому-нить..забывал.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.