如何强制mime-type文件下载

时间:2011-08-29 11:17:13

标签: html iframe mime-types

当用户访问我们网站的下载页面时,它会自动开始下载。该页面包含display:hidden iframe,src指向安装程序文件

<iframe src="/path/to/installer.dmg"></iframe>

到目前为止,此工作正常。但我的Chrome扩展程序:“Web开发人员”会记录此警告消息

Resource interpreted as Document but transferred with MIME type application/octet-stream

那么,有没有办法将installer.dmg的content-type显式声明为octet-stream,以便浏览器不会混淆?

4 个答案:

答案 0 :(得分:7)

由于之前的答案之一引用了断开的链接,我将在此处给出答案。

如果您尝试使用特定扩展名指定mime类型的文件,可以将其添加到.htaccess:

AddType application/octet-stream .dmg

但是,这并不能保证浏览器会“下载”该文件。例如,Chrome无法识别这一点。因此,这是一种强制某种类型的文件“下载”的方法:

<FilesMatch "\.(?i:dmg)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

扩展名(dmg)附近的一点正则表达式只是为了使它不区分大小写。

您可能需要在浏览器缓存正常工作之前清除它。

适用于最新的Chrome,Firefox和IE8(截至2013年8月)。我没有在最新的IE或Safari中测试过,所以如果有人有这些浏览器并且可以对它们进行测试,请在下面的评论中确认它们有效。

答案 1 :(得分:0)

如果您的Web服务器是Apache,那么

This page就可以满足您的需求。基本上你所做的就是告诉apache任何扩展名为.dmg的文件都有mime-type application / octet-stream。

答案 2 :(得分:0)

将这些行插入到您的vhost配置中的docroot目录中:

            <Directory path/of/your/docroot/directory>
                <Files path/of/your/file>
                     Header set Content-type "mime/type"
                </Files>
            </Directory>

答案 3 :(得分:-1)

问题是您使用安装程序文件作为网页 您可以做的是在文档准备好的弹出窗口中打开安装程序页面 你可以读这个(用jquery):http://choosedaily.com/1178/15-jquery-popup-modal-dialog-plugins-tutorials/ 或者这个(没有jquery):http://www.quirksmode.org/js/popup.html