Файл открывается вместо загрузки в Internet Explorer в href-ссылке
<a href="path/to/file/filename.xxx" download="filename.xxx">filename</a>'
Когда я нажимаю ссылку, загрузите файл filename.xxx.
Он отлично работает в хроме. Но в Internet Explorer он открывает файл вместо загрузки. В чем может быть проблема? Есть ли какие-либо свойства, которые нужно добавить, чтобы заставить его работать, например.
А также мне нужен образец загрузки файла, который работает для всех браузеров.
Ответы
Ответ 1
Атрибут скачать не поддерживается в IE (см. http://caniuse.com/#search=download%20attribute).
Это говорит о том, что атрибут загрузки поддерживается только firefox, chrome, opera и последней версией браузера Blackberry.
Для других браузеров вам необходимо использовать более традиционные методы для принудительной загрузки. Это код на стороне сервера необходим для установки соответствующего заголовка Content-Type и Content-Disposition, чтобы сообщить (или обмануть в зависимости от вашей точки зрения) браузер для загрузки элемента. Заголовки должны выглядеть следующим образом:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
(спасибо antyrat для копирования и вставки заголовков)
Ответ 2
Он должен быть исправлен на стороне сервера. Сервер должен вернуть эти заголовки для следующих типов файлов:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
Ответ 3
Замените файл (.zip) и IE предоставит пользователю возможность открыть или загрузить файл.
Ответ 4
Для сервера apache2:
AddType application/octect-stream .ova
Местоположение файла зависит от конкретной версии Apache2 - наш находится в /etc/apache 2/mods-available/mime.conf
Ссылка:
https://askubuntu.com/questions/610645/how-to-configure-apache2-to-download-files-directly
Ответ 5
Это должно быть вопросом заголовков http.
см. здесь:
Заголовки HTTP для загрузки файлов
Сервер должен указать вашему браузеру загрузить файл, отправив
Content-Type: application/octet-stream;
Content-Disposition: attachment;
в заголовках
Ответ 6
Это не проблема с кодом. Это настройки IE по умолчанию.
Чтобы изменить настройку "всегда открывать":
- В проводнике Windows нажмите "Инструменты", выберите "Параметры папки"
- В появившемся окне щелкните вкладку "Типы файлов" и прокрутите список до тех пор, пока не найдете расширение файла, которое вы хотите изменить (они находятся в алфавитном порядке). Например, если Internet Explorer всегда пытается открыть .zip файлы, прокрутите список до тех пор, пока не найдете запись для "zip".
- Нажмите на тип файла, затем кнопку "Дополнительно".
- Установите флажок "Подтвердить после загрузки", затем нажмите "ОК" > "Закрыть".
EDIT: Если вы спросите меня, вместо внесения каких-либо изменений в код я добавлю следующий текст " Пользователи Internet Explorer: Чтобы загрузить файл, Rightclick" и нажмите " Сохранить цель как", чтобы загрузить файл.
РЕДАКТИРОВАТЬ 2: ЭТО решение будет отлично работать для вас. Это решение, которое я только что скопировал из другого ответа. Я не пытаюсь передать это как свой собственный
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"filename.xxx\"
Однако вы должны убедиться, что вы указываете тип файлов, которые вы разрешаете. Вы упомянули в своем сообщении, что хотите этого для любого типа файла. Это будет проблемой.
Например, Если на вашем сайте есть изображения, и если конечный пользователь нажимает на эти изображения, они будут загружаться на его компьютер, а не открываться на новой странице. Понял. Поэтому вам нужно указать расширения файлов.
Ответ 7
Известна проблема HTTP-заголовков с Internet Explorer. Попробуйте отредактировать файл .htaccess
сервера (если вы используете Apache) и включите следующие правила:
# IE: force download of .xxx files
AddType application/octect-stream .xxx
<Files *.xxx>
ForceType application/octet-stream
Header Set Content-Disposition attachment
</Files>
Ответ 8
Вы можете настроить это в своем http-заголовке
httpResponse.setHeader("Content-Type", "application/force-download");
httpResponse.setHeader("Content-Disposition",
"attachment;filename="
+ "MyFile.pdf");