千家信息网

C#如何使用WebClient实现上传下载

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"C#如何使用WebClient实现上传下载",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#如何使用WebClient实现上传下载"吧!
千家信息网最后更新 2026年10月31日C#如何使用WebClient实现上传下载

本篇内容主要讲解"C#如何使用WebClient实现上传下载",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#如何使用WebClient实现上传下载"吧!

一、概述

System.Net.WebClient属于高层类、使用简单。均支持异步版本。支持http,https,fpt,files等URI。

建议不要将 WebClient 类用于新的开发。Net4.5及以上请改用 System.Net.Http.HttpClient 类。

二、下载

1、OpenRead:打开一个可读的Stream。

对于FTP资源,默认使用RETR命令;对于HTTP资源,默认使用Get方法。

Stream= client.OpenRead(serverUri):

举例

WebClient client = new WebClient();client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");client.Encoding = Encoding.GetEncoding("gb2312");client.Credentials = new NetworkCredential("csp", "welcome");Stream data = client.OpenRead(url);//OpenRead为下载的数据打开一个只读的流StreamReader reader = new StreamReader(data, Encoding.GetEncoding("gb2312"));sting s = reader.ReadToEnd();reader.Close();return s;

2、DownloadData:以byte[]形式下载资源。

byte[] data= client.DownloadData(serverUri):

3、DownloadFile:将资源下载在本地文件。

void client.DownloadFile(serverUri,localFile):

4、DownloadString:以string的形式下载资源。

string content =client.DownloadString(serverUri):

5、事件

  • DownloadProgressChanged事件:

  • Download***Completed事件

6、获取下载网址的真实文件名

获取http头部信息的内容。

Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。

Content-disposition其实可以控制用户请求所得的内容存为一个文件的时候提供一个默认的文件名,文件直接在浏览器上显示或者在访问时弹出文件下载对话框。
形如:"Content-Disposition: attachment;filename=FileName.txt"。

当你在响应类型为application/octet- stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个"文件下载"的对话框

WebClient client = new WebClient();byte[] data = client.DownloadData(fileUrl);var mc = Regex.Matches(Server.UrlDecode(client.ResponseHeaders["Content-Disposition"]), @"filename=(.+)");string filename = mc[0].Groups[1].Value;

三、上传

1、OpenWrite:打开一个可写的流。

对于FTP资源,默认使用STOR命令;对于HTTP资源,默认使用POST方法。

Strean =client.OpenWrite(serverUri);

2、UploadData:将byte[]数据上传到serverUri。

byte[] =client.UploadData(serverUri,byte[]);

3、UploadFile:将本地文件上传到serverUri。

byte[] =client.UploadFile(serverUri,localFile);

举例:

WebClient client = new WebClient();client.Encoding = Encoding.UTF8;client.Credentials = new NetworkCredential("csp", "welcome");client.UploadProgressChanged += new UploadProgressChangedEventHandler(UploadProgressCallback);client.UploadFileCompleted += new UploadFileCompletedEventHandler(UploadFileCompletedCallback);client.UploadFileAsync(new Uri(uriString + Path.GetFileName(localfileName)), null, localfileName, progressbarfrom);/// /// 上传过程处理/// /// /// private static void UploadProgressCallback(object sender, UploadProgressChangedEventArgs e){    (e.UserState as ProgressBar).Value = e.ProgressPercentage;}private static void UploadFileCompletedCallback(object sender, UploadFileCompletedEventArgs e){    if (e.Error == null)        MessageBox.Show("完成上传");    else        throw e.Error;}

4、UploadValues:将指定的名/值集合到serverUri。

byte[] =client.UploadValues(serverUri,namevalueCollection);

5、事件:

  • UploadProgressChanged:e.ProcessPercentage,e.TatalBytesToReceive,e.BytesReceived;

  • Upload***Completed: e.Cancelled,e.Error,E.UserState;

四、System.Url类(统一资源表示符)

Uri url=new Uri("//www.yisu.com:2105/article/247999.htm?order=true");

  • OriginalString 获取传递给 Uri 构造函数的原始 URI 字符串。//www.yisu.com:2105/article/247999.htm?order=true

  • Scheme 获取此 URI 的方案名称。http

  • IsFile 获取一个值,该值指示指定的 Uri 是否为文件 URI。false

  • Host 获取此实例的主机部分。www.yisu.com

  • HostNameType 获取 URI 中指定的主机名的类型。DNS

  • Port 获取此 URI 的端口号。2105

  • IsDefaultPort 获取一个值,该值指示 URI 的端口值是否为此方案的默认值。false

  • AbsolutePath 获取 URI 的绝对路径。/article/247999.htm

  • Query 获取指定 URI 中包括的任何查询信息。?order=true

  • PathAndQuery 获取用问号 (?) 分隔的 AbsolutePath 和 Query 属性。/article/247999.htm?order=true

到此,相信大家对"C#如何使用WebClient实现上传下载"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文件 资源 内容 事件 上传下载 C# 信息 指示 方法 主机 命令 对话框 形式 数据 文件下载 文件名 方案 用户 类型 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 喔噻互联网科技有限公司 亿人帮互联网科技有限公司 湖南永感互联网科技有限公司 互联网科技公司华为 深圳互联网科技公司 互联网科技公司怎么样 互联网科技缩写 壕鑫互联网络科技 科技互联网公司logo 奔汉互联网科技 盛创互联网科技有限公司 四个字互联网科技公司取名 恒生科技互联网指数分析 互联网 科技馆 温州喔噻互联网科技有限公司 科技与互联网哪个更好 宁夏科技产业互联网案例 互联网科技革命什么开始 无锡工业互联网科技有限公司 百单网互联网科技有限公司怎么样 互联网是第几次科技革命的成果 科技制造互联网公司 科技类的互联网平台 栖莱科技互联网股份有限公司 晓花互联网科技有限公司网址 科技互联网的核心竞争力 上海乐五互联网科技有限公司 盐城市攀科互联网科技有限公司 平安好医生打造互联网科技医疗
0