Риточка
5.05.2013 - 23:30
Привет. Есть здесь джентльмены, которые помогут блондинке разобраться?)) у меня на сайте пользователи должны добавлять картинки. Все вроде бы получилось, но есть несколько но...
Вот код добавления:
$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()., то имена получаются и там, и там оригинальные, все верно работает, но не устраивает, что имена могут повторяться у разных пользователей.
Кто поможет?) Буду очень признательна
То есть, чтобы обеспечить уникальность, вы хотите добавлять к имени файла текущее время?
Ну не знаю, насколько такой способ хорош, я бы сделал через специальную таблицу, где хранил бы соответствие: рандомное имя->реальное имя->пользователь. К примеру так...
А почему в таблице прописывается старое имя? Покажите запрос.
Используй для записи в БД переменную $uploadfile, она уже содержит имя того файла, который сохраняется на сервере.
_____________
Бесплатному сыру в дырки не заглядывают...
Риточка
6.05.2013 - 00:25
Спасибо за отклик, 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?
Риточка, я так понимаю у вас по одной фотографии к каждому объявлению? Тогда в запросе поменяйте $foto на $uploadfile.
Риточка
6.05.2013 - 00:32
спасибо. У меня вообще-то в планах сделать несколько фоток, но с этим я потом уже разберусь сейчас попробую и сразу отпишусь.
Риточка
6.05.2013 - 00:44
$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 "Ваши данные не добавлены";}
Вот так? Вообще ничего не поменялось
И новые фотографии, добавленные после исправлений, тоже не отображаются?
Риточка
6.05.2013 - 01:04
в папку на сервере они приходят правильно уже с новым именем. Только в поле таблицы mysql приходит не путь к нему, а просто старое название файла.
Не знаю, как это у вас так получается. Вроде должно работать! Присылайте полностью код, свой email я вам в личку скинул.
Риточка
6.05.2013 - 01:32
спасибо. отправила
а не могли бы вы, Риточка, ссылку на сайт прислать личным сообщением? очень хочется посмотреть работу вашу.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.