IE и Edge игнорируют тип MIME приложения / октет-потока - PullRequest
0 голосов
/ 05 января 2019

Недавно я создал поддомен для загрузки, и я хочу, чтобы браузер загружал файлы вместо его просмотра. Для этого я добавил в файл .htaccess следующую строку:

AddType application/octet-stream .txt .png .jpg .jpeg .gif .exe .zip .rar .gz .sh .bat .doc .docx

В Firefox и Google Chrome это работает, но оба браузера Microsoft - Internet Explorer и Microsoft Edge игнорируют MIME-тип и просматривают их вместо этого. Как я также могу заставить их также скачивать файлы?

1 Ответ

0 голосов
/ 07 января 2019

Я вижу, что вы добавили все типы файлов в одну строку. Поэтому вы можете попытаться добавить их в отдельной строке, чтобы проверить, решает ли это вашу проблему или нет.

Основываясь на результатах поиска, я обнаружил, что IE может работать с кодом ниже. Таким образом, вы также можете сделать тест с ним.

# Force PDF Download instead of display

<FilesMatch "\.pdf$">

ForceType applicaton/octet-stream

Header set Content-Disposition attachment

</FilesMatch>

## End Force PDF Download instead of display

Справка:

Принудительное скачивание файла в браузере через htaccess

Если вы используете PHP, вы можете попытаться использовать следующий подход.

PHP позволяет изменять заголовки HTTP файлов, которые вы пишете, так что вы можете принудительно загрузить файл, который обычно загружается браузером в том же окне. Это идеально подходит для таких файлов, как PDF-файлы, файлы документов, изображения и видео, которые вы хотите, чтобы ваши клиенты загружали, а не читали в Интернете. Используя PHP, вы можете воспользоваться встроенной функцией PHP для чтения файлов:

$file_url = 'http://www.example.com/file.pdf';

header('Content-Type: application/octet-stream');

header("Content-Transfer-Encoding: Binary");

header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");

readfile($file_url);

exit();

Справка:

(1) Принудительно загружать и не открывать файлы в браузере с использованием Apache или PHP

(2) Принудительно сохранять файлы во всех браузерах - не открывается в окне браузера

...