Добавить MIME-тип в HTML-ссылку - PullRequest
31 голосов
/ 21 января 2010

Я знаю, как изменить тип MIME на веб-сервере. Я использовал это, чтобы браузер загружал мой файл .scrpt, а не открывал текстовую версию. Пока все хорошо, но возможно ли сделать то же самое со ссылкой? Я хотел бы сослаться на файл на GitHub, но он откроется в виде простого текстового файла. Могу ли я добавить «атрибут типа MIME» к ссылке, чтобы сообщить браузеру о загрузке файла?

Вот что я хотел бы увидеть:

<a mimetype="application/octet-stream" href="http://gist.github.com/raw/279094/39d5a2c1037288d5ee0ba1a17dca9edb368bbe42/RepairiPhotoDates.scpt">download</a>

Ответы [ 4 ]

38 голосов
/ 24 апреля 2013

Время ответить на мой вопрос. Это действительно старый вопрос, и, возможно, в то время это было невозможно, но с тех пор многое изменилось. В спецификации HTML5 добавлен атрибут download:

<a href="hugepdf.pdf" download>Download file</a>

Это будет делать именно то, что мне нужно, сказать браузеру, чтобы загрузить файл, а не открывать его. Спасибо Джонатану Свардену за решение моего давнего вопроса!

13 голосов
/ 21 января 2010

Можно указать атрибут type , но тип содержимого, отправляемый сервером, является доверенным.

Этот атрибут дает консультативный совет относительно типа содержимого, доступного по целевому адресу ссылки. Это позволяет пользовательским агентам использовать резервный механизм вместо извлечения контента, если им сообщают, что они получат контент в типе контента, который они не поддерживают.

Кроме этого, нет, вы не можете.

1 голос
/ 21 января 2010

Можете ли вы установить скрипт-посредник, который загружает файл на сервер, а затем загружает его пользователю с другим типом MIME?

0 голосов
/ 21 января 2010

HTML не заботится о заголовках ответа HTTP. Это абсолютно серверная проблема, которая должна быть решена в заголовках ответа HTTP перед отправкой тела ответа HTTP (/ content?). Без языка сценариев, такого как Ruby или PHP, вы ничего не сможете сделать.

...