Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   COntent-type для file-поля (https://javascript.ru/forum/misc/44943-content-type-dlya-file-polya.html)

demoniqus 07.02.2014 15:58

COntent-type для file-поля
 
не совсем JavaScript, но все же спрошу...
На странице есть форма multipart с файловым полем. В него загружаю csv -файл и отправляю на сервак. Браузер подставляет вместо content-type: text/csv для него всякую хрень (в частности с моей машины application/vnd.ms-excel, а с другой, где не стоит офисный пакет, application/octet-stream). Из-за этого файл не принимается на сервере...
Вот уж не подумал бы, что не справлюсь с созданием csv-файла... Подскажите, можно ли как-то заставить браузер правильно определять content-type файла?

Яростный Меч 07.02.2014 16:04

Цитата:

Сообщение от demoniqus
Из-за этого файл не принимается на сервере...

как одно с другим связано?

demoniqus 07.02.2014 16:12

стоит проверка if ($file->getType() != 'text/csv') {...}
Оно и на равно... браузер как хочет, так и интерпретирует этот файл. Но почему-то все браузеры на моей машине (IE, FF, Opera, Chrome) воспринимают этот файл одинаково...

Яростный Меч 07.02.2014 16:19

Цитата:

Сообщение от demoniqus
стоит проверка if ($file->getType() != 'text/csv') {...}

делай проверку по расширению ".csv" в имени файла (кстати, это можно и в браузере сделать).

demoniqus 07.02.2014 16:26

Решение найдено!
Пока это проверено на Windows
Вероятно, браузер, при отправке multipart-формы определяет расширение файла и запрашивает у ОС ассоциированный с этим расширением тип данных. Сервер не участвует или не всегда участвует в определении типа содержимого файла. А этот тип прописан в реестре в HKEY_CLASSES_ROOT. После его изменения все пошло на УРА!

kostyanet 07.02.2014 20:19

Автор забыл что

Цитата:

Сообщение от demoniqus
Из-за этого файл не принимается на сервере...

и начал править реестр своей винды. И всем остальным юзерам исправит.

Кладите на мим-тип и все. Чсв это ж обычный текст. Как получить расширение (тип) файла на сервере знаете? Ну и вот.

demoniqus 10.02.2014 15:45

Знать-то знаю, а вот доступа непосредственно на сервер, чтобы там закоментить данную проверку, не было... вот и пришлось извращаться с реестром))))

danik.js 10.02.2014 16:03

Цитата:

Сообщение от demoniqus
вот и пришлось извращаться с реестром

Ну дык если чисто для себя, чтоб какой-то корявый сервис побороть - то почему бы и нет. И не извращение а исправление косяков обнаглевшего мелкосовтового офиса.


Часовой пояс GMT +3, время: 13:38.