最近,我为下载创建了一个子域,我希望浏览器下载文件而不是查看文件。为此,我将以下行添加到.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类型,而是查看了它们。我还可以如何强迫他们也下载文件?
答案 0 :(得分:0)
我可以看到您已经在一行中添加了所有文件类型。因此,您可以尝试将它们添加到单独的行中,以检查它是否可以解决您的问题。
根据我的搜索,我发现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
参考:
Forcing a file to download in a browser via 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)Force Files to Download and Not Open in Browser Using Apache or PHP
(2)Force save files all browsers - not open in browser window