«Открытые файлы на основе содержимого, а не расширения файла» в IE 9 - PullRequest
2 голосов
/ 05 мая 2011

Я поддерживаю сайт для клиента во внутренней сети. Сайт содержит ссылки на XML-файлы. Эти XML-файлы имеют уникальное расширение и предназначены для открытия определенным приложением. Используя IE 8, мы могли бы поддержать это, установив параметр «Открывать файлы на основе содержимого, а не расширения файла» в «Свойства обозревателя» -> «Безопасность» -> «Пользовательский уровень». В IE 9 эта опция была удалена. Теперь эти файлы открывают новую вкладку и отображают xml.

В идеале я хотел бы, чтобы файл просто загружался через менеджер загрузок, но открытие файла в приложении на клиентском компьютере также было бы приемлемым. Каков наилучший способ сделать это в IE 9? Есть ли настройка, которую я должен настроить? На стороне сервера я попытался настроить тип MIME, но кажется, что если я отправил его на что-то неизвестное (например, application/octet-stream), IE определяет содержимое. Последний вариант, о котором я мог бы подумать, - это настроить ссылки таким образом, чтобы они вызывали страницу asp.net, которая загружает содержимое xml в объект ответа, но изменяет заголовок на Content-Disposition:"attachment;filename=file.ext”.

Какой совет, как лучше решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 05 мая 2011

Content-Disposition:attachment это то, что вы ищете, да. Именно так вы указываете браузерам загружать файл отдельно, а не пытаться его отобразить.

Вы можете использовать маршрутизацию или переписывание, чтобы сохранить URL-адреса файлов, но ASHX может обработать файл, чтобы он мог установить этот заголовок. (не используйте ASPX; это больше, чем нужно, просто установите несколько заголовков)

2 голосов
/ 12 мая 2011

Я думаю, что обходной путь, который я искал, заключался в том, что опция «Открывать файлы на основе содержимого, а не расширения файла» в IE8 была переименована в «Enable MIME Sniffing» в IE9.Но ответ Эндрю Барбера - правильное решение.

...