Вопрос № 95356: Уважаемые! Помогите, пожалуста, разобраться с "чудом" творчества... не могу заставить свой же скрипт переименовывать закачиваемые файлы (фотографии). :) извините за глупый вопрос - просто замучался тупить уже....
Вопрос № 95.356
Уважаемые! Помогите, пожалуста, разобраться с "чудом" творчества... не могу заставить свой же скрипт переименовывать закачиваемые файлы (фотографии). :) извините за глупый вопрос - просто замучался тупить уже.
Приложение:
Отправлен: 16.07.2007, 23:52
Вопрос задал: Strimul (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Flynn
Здравствуйте, Strimul!
Во первых используй для закачки файлов массив короткий $_FILES - не обязательно, но рекомендуется, так как длинные массивы могут быть отключены в настройках РНР.
Во вторых при перемещении файла используй не copy(), а move_uploaded_file(). Внутриности в скобках у них одинаковые, но вторая функция по первых проверяет был ли этот файл загружен (как функция is_uploaded_file()), а во вторых копирует. Т.е. это дополнительная защита с проверкой, что ты копируешь именно загруженый юзером файл, а не какой-то хитро вывернутый скрипт. Собственно почему у тебя не переименовывается - точно не знаю, может спецификация функции copy, может нет. Но эта функция должна работать по любому.
Так же не помешало бы еще само имя файла проверять на недопустимые символы (пробел например), чтобы не было потом лишних проблем со ссылками на них.
Ответ отправил: Flynn (статус: 2-ой класс)
Ответ отправлен: 17.07.2007, 01:31
Отвечает: Киряков Александр Ивановичч
Здравствуйте, Strimul!
Попробуйте так:
if(move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/".$_FILES['file']['name']))
{
$ok='Файл успешно загружен.';
}else{
$ok='Произошли ошибки, файл загрузить не удалось.';
}
Ответ отправил: Киряков Александр Ивановичч (статус: 1-ый класс)
Ответ отправлен: 17.07.2007, 12:49 Оценка за ответ: 5