返回顶部
首页 > 资讯 > 精选 >怎么在c#中利用WebRequest实现一个多文件上传功能
  • 723
分享到

怎么在c#中利用WebRequest实现一个多文件上传功能

2023-06-14 05:06:16 723人浏览 安东尼
摘要

本篇文章为大家展示了怎么在C#中利用WEBRequest实现一个多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。添加引用使用WebRequest需要添加引用System.Web,否则引入

本篇文章为大家展示了怎么在C#中利用WEBRequest实现一个多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

添加引用

使用WebRequest需要添加引用System.Web,否则引入出错。

参数封装

方便起见,我把请求参数进行了封装,代码如下:

namespace EasyHttp.net.Core{  public class KeyValue  {    public string Key;    public string Value;    public string FilePath;    public string ContentType="*/*";    public KeyValue(string key, string value, string filePath, string contentType)    {      Key = key;      Value = value;      FilePath = filePath;      ContentType = contentType;    }    public KeyValue() { }    public KeyValue(string key, string value, string filePath)    {      Key = key;      Value = value;      FilePath = filePath;    }    public KeyValue(string key, string value)    {      Key = key;      Value = value;    }  }}

KeyValue代表了广义的参数,可以是普通的键值对,也可以是文件参数。

多文件上传封装

public static void ExecuteMultipartRequest(HttpWebRequest request, List<KeyValue> nvc){  Console.WriteLine(request.Headers);  //  log.Debug(string.FORMat("Uploading {0} to {1}", file, url));  string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");  byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");  HttpWebRequest wr = request;  wr.ContentType = "multipart/form-data; boundary=" + boundary;  wr.Method = "POST";  wr.KeepAlive = true;  wr.Credentials = System.Net.CredentialCache.DefaultCredentials;  using (var rs = wr.GetRequestStream())  {    // 普通参数模板    string formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";    //带文件的参数模板    string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n";    foreach (KeyValue keyValue in nvc)    {      //如果是普通参数      if (keyValue.FilePath == null)      {        rs.Write(boundarybytes, 0, boundarybytes.Length);        string formitem = string.Format(formdataTemplate, keyValue.Key, keyValue.Value);        byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);        rs.Write(formitembytes, 0, formitembytes.Length);      }      //如果是文件参数,则上传文件      else      {        rs.Write(boundarybytes, 0, boundarybytes.Length);        string header = string.Format(headerTemplate, keyValue.Key, keyValue.FilePath, keyValue.ContentType);        byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header);        rs.Write(headerbytes, 0, headerbytes.Length);        using (var fileStream = new FileStream(keyValue.FilePath, FileMode.Open, FileAccess.Read))        {          byte[] buffer = new byte[4096];          int bytesRead = 0;          long total = 0;          while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)          {            rs.Write(buffer, 0, bytesRead);            total += bytesRead;          }        }      }          }    byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");    rs.Write(trailer, 0, trailer.Length);  }}

使用

static void Main(string[] args)    {var request = WebRequest.Create("http://localhost:8080/test/upload") as HttpWebRequest;      List<KeyValue> keyValues = new List<KeyValue>();      keyValues.Add(new KeyValue("key1","param1"));      keyValues.Add(new KeyValue("key2", "param2"));      keyValues.Add(new KeyValue("file","test1.png","image/png"));      keyValues.Add(new KeyValue("file", "test2.png", "image/png"));      EasyHttp.ExecuteMultipartRequest(request,keyValues);    }

上述内容就是怎么在c#中利用WebRequest实现一个多文件上传功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在c#中利用WebRequest实现一个多文件上传功能

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

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

猜你喜欢
  • 怎么在c#中利用WebRequest实现一个多文件上传功能
    本篇文章为大家展示了怎么在c#中利用WebRequest实现一个多文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。添加引用使用WebRequest需要添加引用System.Web,否则引入...
    99+
    2023-06-14
  • c# 使用WebRequest实现多文件上传
    目录添加引用参数封装多文件上传封装使用c#中通常使用HttpWebRequest进行HTTP网络请求,HttpWebRequest只对Http请求进行了最简单的封装。如果要利用Htt...
    99+
    2024-04-02
  • 利用hadoop怎么实现一个文件上传功能
    本篇文章给大家分享的是有关利用hadoop怎么实现一个文件上传功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。hdfs上的文件是手动执行命令从本地linux上传至hdfs的。...
    99+
    2023-05-31
    hadoop
  • 利用servlet怎么实现一个文件上传功能
    本篇文章为大家展示了利用servlet怎么实现一个文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.servlet上传文件  servlet上传文件就是将客户端的文件上传到服务器端。  ...
    99+
    2023-05-31
    servlet 一个文件
  • 利用Struts怎么实现一个文件上传功能
    这期内容当中小编将会给大家带来有关利用Struts怎么实现一个文件上传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.在jsp文件中进行定义<form action="/Struts...
    99+
    2023-05-31
    struts st
  • nodejs中怎么利用express实现一个文件上传功能
    这期内容当中小编将会给大家带来有关nodejs中怎么利用express实现一个文件上传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。步骤:(1)使用express创建...
    99+
    2024-04-02
  • 怎么在JAVA中利用HttpURLConnection实现一个文件上传下载功能
    怎么在JAVA中利用HttpURLConnection实现一个文件上传下载功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HttpURLConnection文...
    99+
    2023-05-31
    java httpurlconnection ava
  • 怎么在Java中利用dropzone.js实现一个文件拖拽上传功能
    本篇文章为大家展示了怎么在Java中利用dropzone.js实现一个文件拖拽上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。jsp页面: 首先必须引入dropzone的js和css文件<...
    99+
    2023-05-31
    java dropzone.js ava
  • 利用Spring MVC怎么实现一个文件上传功能
    本篇文章给大家分享的是有关利用Spring MVC怎么实现一个文件上传功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用Spring MVC 上传文件必须配置文件解析器,如...
    99+
    2023-05-31
    springmvc 一个文件
  • 如何在Java中利用FileUpload实现一个文件上传功能
    如何在Java中利用FileUpload实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体方法如下://创建磁盘文件项工厂 DiskFile...
    99+
    2023-05-31
    java fileupload ava
  • 如何在Java中利用COS实现一个文件上传功能
    如何在Java中利用COS实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。cos是O'Rrilly公司开发的一款用于HTTP上传文件的OpenSo...
    99+
    2023-05-31
    cos java ava
  • 利用servlet怎么实现一个文件上传下载功能
    利用servlet怎么实现一个文件上传下载功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、准备工作:  1.1 文件上传插件:uploadify;  1.2 文件上传所需...
    99+
    2023-05-31
    servlet 一个文件
  • 利用javaweb如何实现一个文件上传功能
    利用javaweb如何实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体内容如下文件上传示例注意:jsp页面编码为"UTF-8"文件...
    99+
    2023-05-31
    javaweb 文件上传 ava
  • 怎么在Java Web项目中利用Html5 FormData实现一个文件上传功能
    怎么在Java Web项目中利用Html5 FormData实现一个文件上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先html页面定义有两种:Html1<fo...
    99+
    2023-05-31
    javaweb html5 formdata
  • 在SpringMVC中使用 jquery.uploadify怎么实现一个文件上传功能
    在SpringMVC中使用 jquery.uploadify怎么实现一个文件上传功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。项目结构普通表单上传<form ac...
    99+
    2023-05-31
    springmvc jquery.uploadify fy
  • 怎么在shell中实现一个ftp上传下载文件功能
    怎么在shell中实现一个ftp上传下载文件功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1,建立主机A到其他三台主机之间的信任关系,以便于远程拷贝文件#生成主机A的本...
    99+
    2023-06-09
  • 使用MultipartFile怎么实现一个文件上传功能
    使用MultipartFile怎么实现一个文件上传功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一.主要有两个java类,和一般的servlet放在一起即可...
    99+
    2023-05-30
    multipartfile
  • 怎么使用Struts2实现一个文件上传功能
    这期内容当中小编将会给大家带来有关怎么使用Struts2实现一个文件上传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。upload.jsp 这个页面选择提交文件,提交到uploadImage.acti...
    99+
    2023-05-31
    struts2 st
  • 怎么在Centos中利用文件实现一个swap功能
    怎么在Centos中利用文件实现一个swap功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。创建swap文件mkdir/var/swap#创建一个文件夹用于存放交换分区文件,...
    99+
    2023-06-10
  • vue 中怎么利用webuploader 实现文件上传功能
    今天就跟大家聊聊有关vue 中怎么利用webuploader 实现文件上传功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、封装组件引入百度提供...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作