下载文件ASP.NET时禁用保存并另存为

时间:2013-09-23 06:08:47

标签: c# javascript asp.net .net


我正在创建一个带有下载选项的网页

当用户点击下载选项时,他会得到三个选项

  • 打开
  • 保存
  • 另存为

我只想让用户看到

  • 打开

我正在使用ASP.NET 4
谢谢

P.S。我试过谷歌,但没有好的

3 个答案:

答案 0 :(得分:0)

你不能这样做,这将是一个安全风险。我认为下一个最好的事情是让用户将应用程序注册到uri方案,这需要通过注册表在客户端PC上进行配置。 (对于Windows)

当然,这意味着您的应用程序也需要支持此功能。你可以在这里看到它是如何工作的:

http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

最好的办法是在应用程序通过安装程序安装时使用此注册表,否则您可以提供可执行文件来修改注册表,或者在每个客户端上手动执行,或者让用户从站点下载可执行文件,永远是可行的。

如果您正在开发客户端应用程序,您可以采用相反的方式让它对Web服务器进行轮询,但这当然是一个更加进化的解决方案。

答案 1 :(得分:0)

根据您提供的文件类型,您可以将以下标头添加到响应消息中:

content-disposition: inline

代码:

Response.AddHeader("content-disposition", "inline")

这将告诉浏览器立即打开文件,而不是显示对话框。但它只有在浏览器支持文件类型时才有效。

答案 2 :(得分:0)

保存,另存为,打开是您浏览器的选项。检查不同的浏览器,您将看到不同的选项。天啊,我可以用“Hit”,“Hit Me”,“Hit Me Again”和“Take a Look”选项制作浏览器。你无法通过asp.net代码控制它们。

您可以通过代码做的最好的事情是指示您的浏览器使用以下内容或附件显示下载的内容:

  

Response.AddHeader(“content-disposition”,“attachment; filename = somefile.pdf”)

  

Response.AddHeader(“content-disposition”,“inline”)

第一个选项将触发浏览器的下载选项(在您的情况下将显示“保存”,“另存为”和“打开”按钮)。在我的情况下,Chrome会自动保存文件,而不会向我询问任何内容。

第二个选项将直接打开文件,但仅限浏览器将正确识别下载内容的内容类型以及是否可以显示该文件。

例如,对于PDF文件,您需要设置:

  

Response.ContentType =“application / pdf”;

如果您使用的是较旧的浏览器,或者您需要使用已安装了PDF插件的较新浏览器(IE7 +,Chrome等等),则需要安装Acrobat Reader。

我希望这会有所帮助。