У меня есть содержимое с типом mime, установленным как application/x-chm, что, как я понимаю, позволяет загружать файлы chm. Однако, когда я выбираю ссылку, которая вызывает диалоговое окно сохранения/открытия файла, расширение файла .chm не разрешается, и я должен явно добавить расширение файла .chm для сохраняемого файла. Как я могу автоматически разрешить расширение файла .chm?
проблема с загрузкой файла chm
comment
Как выглядит код, запускающий загрузку? Какие заголовки отправляются?
- person Rob W   schedule 18.06.2012
Ответы (1)
Согласно этому официальному документу IANA, тип MIME для .chm
файлов — application/vnd.ms-htmlhelp
.
Примечание: вы никогда не знаете наверняка, как файл отображается для пользователя, поскольку пользователь может сам выбирать, как отображать файл.
person
Rob W
schedule
18.06.2012
Спасибо за ваш ответ Роб. К сожалению, изменение типа mime по-прежнему не имеет никакого эффекта. В ответ на ваш комментарий выше у меня нет контроля над кодом, который обрабатывает загрузку. У меня есть доступ только к коду, который загружает контент в нашу базу данных. PDF-файлы, которые загружаются таким же образом и имеют тип mime, установленный как application/pdf, работают должным образом.
- person Mark Walsh; 19.06.2012
@MarkWalsh Под заголовками я имею в виду заголовки ответа (сервера). Например, см. stackoverflow.com/q/2868976 (я имел в виду
filename=...
). Эти заголовки можно проверить в различных инструментах разработки, например. в Chrome: stackoverflow.com/q/4423061.
- person Rob W; 19.06.2012
Для файлов chm заголовок имеет Content-Type = application/vnd.ms-htmlhelp и Content-Disposition = attachment; имя файла=полезная нагрузка. В то время как для pdf-файлов заголовок имеет Content-Type = application/pdf и Content-Disposition = вложение; имя файла=полезная нагрузка.
- person Mark Walsh; 19.06.2012
Вам не приходило в голову использовать
filename="payload.chm"
? Я могу подтвердить, что .pdf
автоматически добавляется с помощью ваших заголовков (Chrome 18).
- person Rob W; 20.06.2012
Ах да, в этом дело. Если имя загружаемого файла сохраняет расширение .chm, все в порядке. Однако в описанном мной случае файлам .chm присваиваются псевдонимы, которые не содержат расширения файла .chm, и у меня нет доступа к кодовой базе, которая обрабатывает это, есть только код, который загружает данные в ДБ. Так что похоже, что мне не повезло, но спасибо за всю помощь, Роб, очень признателен.
- person Mark Walsh; 20.06.2012