![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
хочу получить mime-тип файла
mime_content_type($f); почему-то не работает (вызов неизвестной функции) отсюда как я понял надо опереться на Fileinfo Functions , но опять из их описания не понял ровным счётом ничего. там даже нигде не передаётся имя файла собсна, как получить мим-тип? здесь расскажу саму задачу, может кто посоветует иное решение. проблема возникла из сохранения на сервере файлов с русскими именами. однозначно рубить концы и транслитировать не хотелось (попробуй потом объясни каждому менегеру, почему он кладёт файл с одним именем, а получает с другим), а внешний сервак отказался отдавать файлы с кирилицей в имени. там стоит запутанный .htaccess, который видать не видя этот файл (с латиницей всё в порядке) сливает на главную страницу. думал закодировать во что-нибудь, но опять же скачивающий пользователь не получит оригинальное название. решил последнюю меру: считывать файл и отдавать через скрипт readfile (количество скачек будет не очень большое). однако, встал вопрос в правильном определении мим-типа, чтобы отправить соответствующий заголовок. Это сообщение отредактировал(а) bars80080 - 4.2.2009, 18:04 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
а смысл? В заголовке content-disposition можно указывать имя скачиваеемого файла, но там только латиницу/цифры/подчеркивание можно применять(т.е. символы из семибитного сегмента кодировки). Добавлено через 1 минуту и 25 секунд да ладно. там даже пример имеется:
вполне себе передается имя файла. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ну, значит у меня не совпадает с этим мануалом восприятие
результат: Class 'finfo' not found так что же, никакой вариантов кроме транслита? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Дык, а расширение mime подключено? Скорее всего нет. А расширение filenfo ? Видимо тоже...
В принципе - mime читает сигнатуры файлов и на основании их делает вывод что за файл. Как правило, все сигнатуры располагаются в первом килобайте файла. При некотором желании можно самому заняться их анализом Список сигнатур и примерный алгоритм их анализа можно взять из файла magic.mime. Файл брать из любого дистрибута PHP... Правда там их дофига, так что лучше выбрать только нужные... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
чтоб вернуть файл динамически через content-Type + content-disposition: attachement - нет, больше нет. правда, некоторые браузеры вполне принимают utf-имя файла(проверять - проверял, но какие браузеры - точно уже не скажу). потому если, скажем, ориентироваться только на opera, то можно и без транслита использовать. значит, не подключено расширение. хостер позволяет редактировать php.ini? |
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
да, наверно, так лучше было бы. но теперь не зачем
с теми хостерами вообще договариваться тяжело. на нет и суда нет, будем транслитировать |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
собственно, нарыл довольно подробный(но неизвестно, насколько актуальный) обзор особенностей использования content-disposition: attachment в разных браузерах.
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
ну вот, а я уже было пал духом. всё нормально прокатило в ИЕ6, ИЕ7, ФФ3 и опера 9.50
примерно в таком виде:
файлы сохраняются с нормальными русскими именами. осталось только попробовать, можно ли использовать кавычки в имени (') остался такой вопрос: readfile насколько сильно напрягает сервер? я так понимаю, что не мало систем работает в таком духе, но всё же хотелось бы узнать |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |