使用WebBrowser下载C#文件

时间:2010-08-18 07:59:47

标签: c#

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/d338a2c8-96df-4cb0-b8be-c5fbdd7c9202/?prof=required

提供了问题和解决方案

如果有包含下载文件名的直接URL,这项工作就完美了。

但有时某些URL会动态生成文件。所以URL没有文件名,但在请求该URL后,某个网站动态创建文件,然后打开/保存对话框。

例如某些链接即时生成pdf文件。

如何处理此类网址?

1 个答案:

答案 0 :(得分:0)

如果您可以控制服务器代码,那么您可以确保它将Content-Disposition标头添加到HTTP响应中,例如:

Content-Disposition: attachment; filename=<put your filename here>

然后,您可以在客户端上查找该标头,以决定在后台下载该文件。

即使您无法控制服务器代码,也请检查HTTP响应是否已包含此标头。我相信这是大多数浏览器寻找的标准标题,以便知道如何下载文件。

This page表示使用Content-Disposition标头的一些准则,包括以下内容:

  • 文件名应为US-ASCII 字符集。

  • 文件名不应该有 任何目录路径信息 指定。

  • 文件名不应该是 尽管如此,用双引号括起来 大多数浏览器都支持它。

  • Content-Type标头应该在之前 内容处置。

  • 内容类型 标题应该指未知 MIME类型(至少在较旧版本之前 浏览器消失了。

Scott Hanselman也有a small article on using this header