Asp.net 从数据库下载exe文件
我有一些exe文件,我已经上传到我的数据库,因为我不想让他们公开访问。我尝试使用链接按钮和通用处理程序,使用以下代码为文件提供服务:Asp.net 从数据库下载exe文件,asp.net,vb.net,Asp.net,Vb.net,我有一些exe文件,我已经上传到我的数据库,因为我不想让他们公开访问。我尝试使用链接按钮和通用处理程序,使用以下代码为文件提供服务: Context.Response.Clear() Context.Response.ContentType = "application/exe" Context.Response.AppendHeader("Content-Disposition", "filename=program.exe") Context.Response.BinaryWrite(bin
Context.Response.Clear()
Context.Response.ContentType = "application/exe"
Context.Response.AppendHeader("Content-Disposition", "filename=program.exe")
Context.Response.BinaryWrite(binaryfile)
问题是:Google Chrome不会将下载内容视为任何其他exe,而是在下载后报告“program.exe不常下载,可能有危险”。通过“放弃”按钮和“保留”选项,下载内容隐藏在上下文菜单下
有没有其他/更好的方法来提供存储在数据库中的exe文件?我不经常在野外看到
application/exe
。对可执行文件使用应用程序/octet流
更为常见
如果您使用的是.NET,那么我将假设您使用的是IIS。(如果不是这样,请纠正我。)如果是这样,可能会有所帮助
当然,您将无法从服务器端绕过任何真正意义上的浏览器端限制。您可以修改发送给客户机的标题,但最终取决于客户机如何处理响应。您是否查看了以下问题:
Jeff G建议注册Google网站管理员工具并添加您的网站。谷歌需要几天的时间来抓取你的网站,并填写任何信息,但它最终会停止认为你的文件是恶意的。在我的例子中,我用以下一组标题解决了这个问题:
Cache-Control: max-age=864000
Content-type: application/octet-stream
Content-Disposition: attachment; filename="....zip"
Content-Transfer-Encoding: binary
Last-Modified: ...
Etag: ...
Content-Length: ...
特别注意内容类型、缓存控制、上次修改和Etag,这似乎是对我有用的标题。可能是因为MIME类型不正确,需要其他类型吗?是的,我无法通过任何浏览器限制。不得不压缩我的文件。@Zishan:你是说只压缩可执行文件?如果浏览器也能聪明地处理这类事情,我也不会感到惊讶。只是要记住一点。拉链并不能帮助避免这个警告。