【发布时间】:2013-12-27 20:16:58
【问题描述】:
当 Uri 不包含名称时,有什么方法可以知道您使用 WebClient 下载的文件的原始名称?
例如,在下载源自事先不知道名称的动态页面的网站中,就会发生这种情况。
使用我的浏览器,文件会得到正确的名称。但是如何使用 WebClient 来完成呢? 例如
WebClient wc= new WebClient();
var data= wc.DownloadData(@"www.sometime.com\getfile?id=123");
使用 DownloadFile() 不是一个解决方案,因为此方法需要提前指定文件名。
【问题讨论】:
-
你试过检查
wc.ResponseHeaders吗?文件下载通常包含带有文件名的附件标题。 -
托伯罗斯。这确实是答案!不知道那个。非常非常感谢!
-
一些从动态页面下载的站点会生成重定向,并且不会在重定向响应上设置“Content-Disposition”,因此您可以使用 HttpClient with AutoRedirect=false,使用 HEAD 方法然后获取响应中的“位置”标头。