[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление фото на сервер через форму ввода
Риточка
Привет. Есть здесь джентльмены, которые помогут блондинке разобраться?)) у меня на сайте пользователи должны добавлять картинки. Все вроде бы получилось, но есть несколько но...
Вот код добавления:
$uploaddir = './img/';
$uploadfile = $uploaddir. time().($_FILES ['foto']['name'] );
if (move_uploaded_file($_FILES['foto']['tmp_name'], $uploadfile)) {
echo "Можете пройти по следующим ссылкам:<br>\n";
} else {
echo "Возможная атака с помощью файловой загрузки!\n";

Проблемы:
1. Не могу разобраться с переименованием файла. Данный код добавляет картинку в папку с новым именем, а в таблице прописывается оригинальное имя и, соответственно, потом ее не выведешь. Если убрать time()., то имена получаются и там, и там оригинальные, все верно работает, но не устраивает, что имена могут повторяться у разных пользователей.
Кто поможет?) Буду очень признательна
paul85
То есть, чтобы обеспечить уникальность, вы хотите добавлять к имени файла текущее время?

Ну не знаю, насколько такой способ хорош, я бы сделал через специальную таблицу, где хранил бы соответствие: рандомное имя->реальное имя->пользователь. К примеру так...

А почему в таблице прописывается старое имя? Покажите запрос.
FatCat
Используй для записи в БД переменную $uploadfile, она уже содержит имя того файла, который сохраняется на сервере.

_____________
Бесплатному сыру в дырки не заглядывают...
Риточка
Спасибо за отклик, Paul. Мне время добавлять не принципиально. Просто в интернете нашла. Может поможете?
Вот сам запрос
$result = mysql_query('INSERT INTO razm_avto (datetime, marka, model, god, probeg, tip, obyom, korobka, kuzov, zvet, zena, gorod, name, phone, opisanie, foto)
VALUES (NOW(),"'.$marka.'", "'.$model.'", "'.$god.'", "'.$probeg.'", "'.$tip.'", "'.$obyom.'", "'.$korobka.'", "'.$kuzov.'", "'.$zvet.'","'.$zena.'","'.$gorod.'","'.$name.'","'.$phone.'","'.$opisanie.'", "'.$foto.'")');
//Если запрос пройдет успешно то в переменную result вернется true
if($result == 'true')
{echo "Ваше объявление успешно добавлено.<br>";}
else{echo "Ваши данные не добавлены";}

А как использовать $uploadfile?
paul85
Риточка, я так понимаю у вас по одной фотографии к каждому объявлению? Тогда в запросе поменяйте $foto на $uploadfile.
Риточка
спасибо. У меня вообще-то в планах сделать несколько фоток, но с этим я потом уже разберусь сейчас попробую и сразу отпишусь.
Риточка
$result = mysql_query('INSERT INTO razm_avto (datetime, marka, model, god, probeg, tip, obyom, korobka, kuzov, zvet, zena, gorod, name, phone, opisanie, foto)
VALUES (NOW(),"'.$marka.'", "'.$model.'", "'.$god.'", "'.$probeg.'", "'.$tip.'", "'.$obyom.'", "'.$korobka.'", "'.$kuzov.'", "'.$zvet.'","'.$zena.'","'.$gorod.'","'.$name.'","'.$phone.'","'.$opisanie.'", "'.$uploadfile.'")');
//Если запрос пройдет успешно то в переменную result вернется true
if($result == 'true')
{echo "Ваше объявление успешно добавлено.<br>";}
else{echo "Ваши данные не добавлены";}

Вот так? Вообще ничего не поменялось
paul85
И новые фотографии, добавленные после исправлений, тоже не отображаются?
Риточка
в папку на сервере они приходят правильно уже с новым именем. Только в поле таблицы mysql приходит не путь к нему, а просто старое название файла.
paul85
Не знаю, как это у вас так получается. Вроде должно работать! Присылайте полностью код, свой email я вам в личку скинул.
Риточка
спасибо. отправила
r3al
а не могли бы вы, Риточка, ссылку на сайт прислать личным сообщением? очень хочется посмотреть работу вашу.
Быстрый ответ:

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