IE和Edge正在忽略应用程序/八位字节流MIME类型



最近我创建了一个下载子域,我希望浏览器下载文件而不是查看它。为此,我在.htaccess文件中添加了以下行:

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

在Firefox和Google Chrome上,它是有效的,但微软浏览器-Internet Explorer和微软Edge都忽略了MIME类型,而是查看它们。我还可以如何强制他们也下载文件?

我可以看到您在一行中添加了所有文件类型。因此,您可以尝试将它们添加到单独的行中,以检查它是否解决了您的问题。

根据我的搜索,我发现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内置的readfile函数:

$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) 强制保存文件所有浏览器-不在浏览器窗口中打开

最新更新