| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Загрузка файла не сервер |
| Автор: tilekus 31.5.2009, 11:38 | ||||
| Нужно загрузить файл на сервер. Но переименовать его, например текущей датой, чтобы названия всех файлов были уникальными. Я заранее не знаю какой тип фалов будет загружаться, т.е. я не могу сказать что пользователи будут закачивать только вордовские файлы или рисунки. Сам принцип организации закачки файла я знаю. Но вот как пееименовть :( Вот сама форма для закачки
А это обрабатывающий скрипт
Подскажите что мне нужно переделать. |
| Автор: Shark 31.5.2009, 12:06 | ||
вот как у меня сделано:
в переменной $image храниится название файла, time() - время в UNIX формате, переменная $type хранит расширение файла |
| Автор: pizzz 31.5.2009, 13:51 |
| Как минимум надо проверять тип файла. Иначе не избежать проблем |
| Автор: Serkys 31.5.2009, 13:56 |
| На http://habrahabr.ru/blogs/php/44610/ хорошо рассказано про безопасность, рекомендую почитать. А файл переименовывается функцией http://ru.php.net/manual/en/function.rename.php. |
| Автор: pizzz 31.5.2009, 14:00 |
| rename лишнее. При сохранении указываем название |
| Автор: tilekus 31.5.2009, 14:26 |
| Тогда такой вопрос, как узнать расширение передаваемого файла? |
| Автор: bars80080 31.5.2009, 14:44 |
$_FILES[av]['type'] |
| Автор: NetJunky 31.5.2009, 15:04 |
| Или с помощью какого-нибудь регулярного выражения(если таковое есть) указать каких типов файлов не должно быть загружено. |
| Автор: tilekus 31.5.2009, 15:07 |
| Как вы думаете правильно ли будет если яделаю таким образом: 1. загружу как есть на сервер 2. с помощью basename вытащу название файла с раширением 3. отсеку от строки все кроме четырех последних символов 4. дам файлу новое название и старое расширение которое получил п.3 4. закинуть в бд Да и кто знает есть ли список может быть всех MIME типов может самых популярных |
| Автор: tilekus 31.5.2009, 15:59 | ||
ничего не выводит Как быть? |
| Автор: ksnk 31.5.2009, 16:01 |
| bars80080, Дело не такое гиблое, если доверить его встроенным функциям http://php.net/mime_content_type или http://ru2.php.net/manual/ru/ref.fileinfo.php. Правда нужно проверить, что соответствующие расширения на сервере есть. Впрочем, они почти стандартны. |
| Автор: supervladislav 31.5.2009, 16:40 |
| тебе какого типа файлы загружать надо )) |
| Автор: bars80080 31.5.2009, 17:00 | ||
как ни странно, в единственном варианте, когда они мне понадобились, на сервере их не оказалось |
| Автор: Photon 31.5.2009, 17:10 | ||
Ну нахрена так себя мучать?
|
| Автор: enof 31.5.2009, 17:13 |
| Photon, tar.gz, tar.bz2 ? |
| Автор: supervladislav 31.5.2009, 17:28 | ||
| а если человеку нужно загрузить определённый mime тип если не ошибаюсь эксплорер возвращает pjpeg
|
| Автор: enof 31.5.2009, 17:42 |
| supervladislav, весь твой код можно смело постить http://forum.vingrad.ru/forum/topic-108931.html. |
| Автор: supervladislav 31.5.2009, 17:47 |
| ничего другого от тебя не ожидал ))спасибо |
| Автор: enof 31.5.2009, 17:52 |
| значит ты знаешь, что пишешь ###код и советуешь так же делать другим? |
| Автор: supervladislav 31.5.2009, 17:54 |
| нет я так не считаю |
| Автор: enof 31.5.2009, 18:01 | ||||
о да, это божественно |
| Автор: tilekus 31.5.2009, 20:55 |
| Спасибо всем большое. Вроде все стало понятно. Теперь буду тестить. Потом напишу что получилось. |
| Автор: SkyCoder 31.5.2009, 23:51 | ||
| Я сейчас плохо представляю какими средствами ты обладаешь(php и методы загрузки файла я успешно забыл), но .. Я вижу две ситуации. 1. Файл для нас - поток байтов, как получили так и вернули. 2. Файл - определённая структура и мы с ней работаем. если первый случай почему не именовать файлы в формате UIN.Вася_пупкин.tar.gzip.jpeg, где UIN - уникальный номер или дата...
выглядит ужасно, но кажется писалось это так. второй вариант по моему не наш случай. |
| Автор: Photon 2.6.2009, 17:16 |
| enof, и что, от того, что пропадет "tar", файл перестанет открываться архиватором? |
| Автор: SkyCoder 4.6.2009, 21:55 | ||
Право же.. не о том тема. У меня под KDE в debian'e 40% файлов без расширения и ассоциируются корректно(не интересовался правда какими средствами оно это делает). |