1

我有一个网站,我想让浏览器用户下载一个 exe。

我正在使用一个非常简单的 HTML 文件对其进行测试,我使用“文件>打开”将其加载到 Web 浏览器中。“身体”看起来像这样:

<body>
<a href="http://www.example.com/myprogram.exe" target="_self">click to download exe</a>
<a href="http://www.example.com/myprogram.zip" target="_self">click to download zip</a>
</body>

问题是这样的:当我单击第一个链接(myprogram.exe)时,浏览器(IE8 和 FireFox)将 myprogram.exe 直接流式传输到浏览器窗口:我看到很多二进制文件。

当我单击第二个链接 (myprogram.zip) 时,浏览器会询问我是否要打开文件或将其保存到磁盘,这正是我预期的 .exe 会发生的情况。

这是导致这种奇怪行为的唯一 .exe 下载。我经常下载 .exe,浏览器总是问我是打开文件还是保存到磁盘。

是否需要在网站本身,主机或...上设置一些东西?

4

4 回答 4

2

您需要更正您的网络服务器发送的内容类型。听起来它声称数据是text/plain. 我的 mime.types 文件建议 exe 文件应该是application/x-msdos-program

如果您使用的是 Apache,请参阅http://httpd.apache.org/docs/1.3/mod/mod_mime.html#addtype(或您正在使用的版本的手册中的类似页面)。

于 2009-10-01T10:07:10.700 回答
1

您需要设置Content-DispositionHTTP 标头

更新:HTTP 标头通常在 Web 服务器中控制,例如 Apache。

正如另一张海报提到的,如果服务器发送正确的header.exe ,大多数浏览器应该自动下载文件作为附件。如何做到这一点因服务器而异。这是一篇关于在 IIS 中设置 MIME 类型(内容类型的另一个名称)的文章。在 Apache 中,通常通过编辑指令指向的文件来完成。Content-TypeTypesConfig

于 2009-10-01T09:50:43.533 回答
0

看到这个

如何为已知 MIME 类型打开“文件下载”对话框

当您从 Web 服务器提供文档时,您可能希望立即提示用户将文件直接保存到用户的磁盘,而不是在浏览器中打开它。但是,对于已知的 MIME(多用途 Internet 邮件扩展)类型,例如 Microsoft Word(“应用程序/ms-word”),默认行为是在 Internet Explorer 中打开文档。

您可以使用 content-disposition 标头来覆盖此默认行为。它的格式是:

内容配置:附件;文件名=fname.ext

于 2009-10-01T09:52:46.123 回答
0

最后,它需要应用 AddType application/x-octet-stream exe。

感谢所有向我指出方向的回答者。

于 2009-10-02T12:26:51.103 回答