相关疑难解决方法(0)

获取没有Content-Disposition的文件名

我正在寻找这个问题的解决方案好几天,我找不到任何.

我想从带有webclient的web服务器下载文件.下载工作正常,但我无法获得真正的文件名,这对我来说非常重要.

我在许多主页上看过,文件名应该保存在Content-Disposition-Header中.不幸的是,这个网站的标题是空的.我试图得到它:

string header_contentDisposition ="";
using (WebClient client = new WebClient())
            {
                client.OpenRead(link);

                header_contentDisposition = client.ResponseHeaders["Content-Disposition"];
                MessageBox.Show(header_contentDisposition);
            }
Run Code Online (Sandbox Code Playgroud)

此标题中没有保存信息.

如果我尝试使用我的浏览器(IE,Opera,Chrome)下载文件,文件名将显示在filedialog中,因此必须将其保存在某处.

你能想象我能在哪里找到它吗?

编辑:我无法从URL中提取它,因为链接是由php生成的

http://www.example.com/download.php?id=10
Run Code Online (Sandbox Code Playgroud)

c# webclient header content-disposition

6
推荐指数
1
解决办法
1万
查看次数

检查网址是否指向文件或网页

我们需要以下内容:

如果文件实际上是文件,请从URL下载文件.否则如果它的页面什么也不做.

为了一个简单的例子,我有以下内容来下载文件:

 My.Computer.Network.DownloadFile(
"http://www.wired.com/wiredenterprise/wp-content/uploads/2013/07/ff_googleinfrastructure_large.jpg",
"d:\ff_googleinfrastructure_large.jpg")
Run Code Online (Sandbox Code Playgroud)

但是,如果我们有一个普通的网页,例如" http://www.google.com ",它只会下载我们不想要的页面.

那么我怎样才能知道一个URL是否会导致文件而不是页面?

它可以是任何类型的文件,因此检查URL是否以.zip或.jpg或.docx或...结束,根本不会这样做.

VB.NET或C#中的答案都是受欢迎的,这就是我标记两者的原因.

c# vb.net

6
推荐指数
1
解决办法
1568
查看次数

标签 统计

c# ×2

content-disposition ×1

header ×1

vb.net ×1

webclient ×1