2011-08-13 110 views
0

在标签.gadget文件,我有一个简单的HTML文件,该文件引用.gadget,以便它可以下载:火狐显示,而不是下载

<a href="name.gadget">Download me!</a> 

IE,歌剧,Safari和Chrome都提供了文件保存到磁盘但是Firefox会在选项卡中加载二进制文件。为什么Firefox会恨我,我必须做些什么来强制Firefox提供下载对话框?

我并不想指示用户“右键单击并选择'将文件另存为'”,或者他们必须在下载后删除.zip扩展名。

服务器是Apache/2.2.17,如果它是相关的。有趣的事实是,Firefox的行为与所有其他浏览器一样 - 如果我从本地磁盘加载打开的.html文件。但是一旦它在服务器上,它就会在一个标签中加载文件。

回答

0

所以,这里的解决方案。

问题是Apache默认为所有“未知”文件类型返回Content-Type = text/plain HTTP标头。与所有其他浏览器不同,Firefox遵守标准,因此它显示内容。 Here's what they have to say about it.您可以使用Firebug在Firefox中检查标题(如果您使用的是Unix,则只需使用curl)。

上面的链接也提示了解决方案;向服务器注册application/x-windows-gadget MIME类型。如果您没有访问服务器的配置,把.htaccess文件在同一目录作为文件(或任何目录上面的目录)与以下行:

AddType application/x-windows-gadget .gadget 

之后,唐忘了清除浏览器缓存。