返回顶部
首页 > 资讯 > 精选 >C#如何使用WebClient实现上传下载
  • 873
分享到

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

2023-06-30 14:06:41 873人浏览 八月长安
摘要

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

本篇内容主要讲解“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实现上传下载”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: C#如何使用WebClient实现上传下载

本文链接: https://lsjlt.com/news/329390.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#如何使用WebClient实现上传下载
    本篇内容主要讲解“C#如何使用WebClient实现上传下载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#如何使用WebClient实现上传下载”吧!一、概述System.Net.WebCl...
    99+
    2023-06-30
  • C#使用WebClient实现上传下载
    一、概述 System.Net.WebClient属于高层类、使用简单。均支持异步版本。支持http,https,fpt,files等URI。 建议不要将 WebClien...
    99+
    2024-04-02
  • SpringMVC如何使用ResponseEntity实现文件上传下载
    本篇内容主要讲解“SpringMVC如何使用ResponseEntity实现文件上传下载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringMVC如何使用ResponseEntity实现文...
    99+
    2023-06-30
  • Python如何使用sftp实现上传和下载功能
    这篇文章主要介绍了Python如何使用sftp实现上传和下载功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有效...
    99+
    2023-06-14
  • C#怎么使用FluentFTP实现FTP上传下载功能
    这篇文章主要介绍“C#怎么使用FluentFTP实现FTP上传下载功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么使用FluentFTP实现FTP上传下载功能”文章能帮助大家解决问题。FT...
    99+
    2023-07-05
  • HTML5如何实现文件上传下载
    这篇文章主要介绍了HTML5如何实现文件上传下载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言HTML5 中提供的文件API在前端中有着...
    99+
    2024-04-02
  • Django 如何实现文件上传下载
    目录1. 前言 2. 实战一下 2-1  进入虚拟环境,创建一个项目及 App2-2  创建模板目录并配置 settings.py2-3  创...
    99+
    2024-04-02
  • Django如何实现文件上传下载
    小编给大家分享一下Django如何实现文件上传下载,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 前言文件上传、下载作为基础功能,在 Web 项目中非常普遍,...
    99+
    2023-06-14
  • SpringMVC如何实现文件上传下载
    本篇内容主要讲解“SpringMVC如何实现文件上传下载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringMVC如何实现文件上传下载”吧!一、通用配置pom.xml  ...
    99+
    2023-06-22
  • AFURLSessionManager如何实现上传下载功能
    这篇文章主要介绍了AFURLSessionManager如何实现上传下载功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、下载 Creating a Download T...
    99+
    2023-05-30
  • SpringMVC使用ResponseEntity实现文件上传下载
    目录使用 ResponseEntity 实现文件上传和下载下载上传使用 ResponseEntity 实现文件上传和下载 在 static 下新建一个 img ,并且我放了一张图片在...
    99+
    2024-04-02
  • 上传下载组件SmartUpload如何使用
    使用SmartUpload组件进行文件的上传和下载,需要以下步骤:1. 导入SmartUpload组件的jar包。可以从官方网站下载...
    99+
    2023-08-23
    SmartUpload
  • Linux下如何使用Shell脚本实现ftp的自动上传下载
    小编给大家分享一下Linux下如何使用Shell脚本实现ftp的自动上传下载,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. ftp自动登录批量下载文件。代码如下:#####从ftp服务器上的/home/data 到 本...
    99+
    2023-06-09
  • SpringBoot如何实现上传和下载文件
    这篇文章主要介绍SpringBoot如何实现上传和下载文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!技术概述我们的项目是实现一个论坛。在论坛上发布博客时应该要可以上传文件,用户阅读博客是应该要可以下载文件。于是我...
    99+
    2023-06-20
  • python实现FTP上传下载
    要求:支持多用户在线的FTP程序 要求:1、用户加密认证2、允许同时多用户登录3、每个用户有自己的家目录 ,且只能访问自己的家目录4、对用户进行磁盘配额,每个用户的可用空间不同5、允许用户在ftp server上随意切换目录6、允许用户查看...
    99+
    2023-01-31
    上传下载 python FTP
  • Python使用sftp实现上传和下载功能
    在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能。 1.功能实现 1、根据输入参数判断是文件还是目录,进行上传和下载 2、本地参数local需...
    99+
    2024-04-02
  • ajax如何实现无刷新上传和下载
    这篇文章主要介绍了ajax如何实现无刷新上传和下载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 关于上传使用F...
    99+
    2024-04-02
  • php如何实现文件的上传和下载
    这篇文章将为大家详细讲解有关php如何实现文件的上传和下载,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Pe...
    99+
    2023-06-14
  • Spring FTP如何实现上传下载工具类
    这篇文章给大家分享的是有关Spring FTP如何实现上传下载工具类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在项目中需要和ftp服务器进行交互,在网上找了一下关于ftp上传下载的工具类,大致有两种。  ...
    99+
    2023-05-30
    spring ftp
  • C#利用FluentFTP实现FTP上传下载功能详解
    目录FTP基础知识FTP环境搭建FluentFTP安装示例演示示例源码FTP作为日常工作学习中,非常重要的一个文件传输存储空间,想必大家都非常的熟悉了,那么如何快速的实现文件的上传下...
    99+
    2023-02-21
    C#实现FTP上传下载 C# FTP上传下载 C# FTP上传 C# FTP下载 C# FTP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作