Вопрос № 152409: Добрый вечер ув. эксперты.. Скажите пожалуйста с помошью какой функции можно вырезать имя, и расширение файла при загрузке? <input type=file name=file_up> и можно ли какой ни будь функцией изменить название на "12easdDasd2e3asd.jpg"...
Вопрос № 152.409
Добрый вечер ув. эксперты.. Скажите пожалуйста с помошью какой функции можно вырезать имя, и расширение файла при загрузке? <input type=file name=file_up> и можно ли какой ни будь функцией изменить название на "12easdDasd2e3asd.jpg" то есть рандомный тайтл(не самому вводить..)
Отвечает: Иван Сергеевич
Здравствуйте, Герасимов Виталий Владиславович!
Существует функция pathinfo(string path [, int options] ); На входе получает путь к файлу (path) и набор опций (необязательно). Возвращает массив с информацией о пути к файлу. В нашем случае интересует ключ "extension" (расширение). Пример использования (из мануала):
В качестве опций можно передать набор ключей PATHINFO_DIRNAME, PATHINFO_BASENAME и PATHINFO_EXTENSION (по умолчанию возвращаются все).
Если необходимо переименовать переданный формой файл, используйте стандартную функцию move_uploaded_file(), в которую передать новое значение для пути к файлу, включая новое имя.
Ответ отправил: Иван Сергеевич (статус: Студент)
Ответ отправлен: 30.11.2008, 21:40
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 237188 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Огромное спасибо =) нашел применение
Отвечает: Товарищ Бородин
Здравствуйте, Герасимов Виталий Владиславович! Вполне! Достаточно при загрузке файла скопировать его с адреса $_FILES['file_up']['tmp_name'], в которую он копируется первоначально при загрузке, в файл с любым именем, которое Вам вздумается. Так, кстати, всегда и делается, скажем, на сайтах знакомств при загрузке фото. В целях безопасности. Например, можно в качестве имени файла взять результат md5(time()). Каждую секунду такое выражение будет выдавать уникальное значение. А расширение оставить
прежним. То есть, результирующий код выглядит так:
if (copy($_FILES['file_ip']['tmp_name'], md5(time()).".jpg")) { echo "File successfully uploaded!"; }
По-моему, я правильно понял Ваш вопрос. С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ICQ: 346988855 ---- Ответ отправлен: 30.11.2008, 21:45
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 237189 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: суппер спасибо =))) то что нужно
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.