当前位置: 首页 > 编程笔记 >

C#实现HTTP上传文件的方法

令狐昂雄
2023-03-14
本文向大家介绍C#实现HTTP上传文件的方法,包括了C#实现HTTP上传文件的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C#实现HTTP上传文件的方法。分享给大家供大家参考。具体实现方法如下:

发送文件代码如下:


/// <summary>

/// Http上传文件

/// </summary>

public static string HttpUploadFile(string url, string path)

{

    // 设置参数

    HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

    CookieContainer cookieContainer = new CookieContainer();

    request.CookieContainer = cookieContainer;

    request.AllowAutoRedirect = true;

    request.Method = "POST";

    string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线

    request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;

    byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");

    byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");

    int pos = path.LastIndexOf("\\");     string fileName = path.Substring(pos + 1);

    //请求头部信息     StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName));     byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());

    FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);     byte[] bArr = new byte[fs.Length];     fs.Read(bArr, 0, bArr.Length);     fs.Close();

    Stream postStream = request.GetRequestStream();     postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);     postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);     postStream.Write(bArr, 0, bArr.Length);     postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);     postStream.Close();

    //发送请求并获取相应回应数据     HttpWebResponse response = request.GetResponse() as HttpWebResponse;     //直到request.GetResponse()程序才开始向目标网页发送Post请求     Stream instream = response.GetResponseStream();     StreamReader sr = new StreamReader(instream, Encoding.UTF8);     //返回结果网页(html)代码     string content = sr.ReadToEnd();     return content; }

接收文件的代码如下:


using System;

using System.Web;

namespace SWX {     public partial class test2 : System.Web.UI.Page     {         protected void Page_Load(object sender, EventArgs e)         {             HttpPostedFile file = Request.Files[0];             file.SaveAs(MapPath("\\UploadFile\\" + file.FileName));             Response.Write("Success\r\n");         }     } }

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 本文向大家介绍C#实现HTTP下载文件的方法,包括了C#实现HTTP下载文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现HTTP下载文件的方法。分享给大家供大家参考。 主要实现代码如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法,包括了C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法,在项目开发中有一定的实用价值,具体方法如下: 一、前言: 这篇文章翻译来自madmik3 写在 Code

  • 本文向大家介绍Servlet3.0实现文件上传的方法,包括了Servlet3.0实现文件上传的方法的使用技巧和注意事项,需要的朋友参考一下 Servlet 实现文件上传 所谓文件上传就是将本地的文件发送到服务器中保存。例如我们向百度网盘中上传本地的资源或者我们将写好的博客上传到服务器等等就是典型的文件上传。 Servlet 3.0 上次完成文件下载功能使用的是 Servlet 2.5,但是想要完成

  • 本文向大家介绍c# 用Base64实现文件上传,包括了c# 用Base64实现文件上传的使用技巧和注意事项,需要的朋友参考一下     Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法。     使用base64进行文件上传的具体流程是:前台使用js将文件转换为base64格式,后台通过高级编程语言,将base64格式的文件,转换

  • 本文向大家介绍C#实现文件上传以及多文件上传功能,包括了C#实现文件上传以及多文件上传功能的使用技巧和注意事项,需要的朋友参考一下 一、前端搭建 1、前端用到js:uploadify(下载地址:http://www.uploadify.com/download/)、layer (下载地址:http://layer.layui.com/),下载之后把它们放在你的项目里 列如 2、根据你的需要在你项目

  • 本文向大家介绍ASP.NET文件上传Upload的实现方法,包括了ASP.NET文件上传Upload的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了ASP.NET 文件上传,供大家参考,具体内容如下 1、最近应项目开发的需求要实现附件的异步上传和下载。 2、上传:文件上传到指定的路径下,并返回上传文件的信息给前端界面,如:文件的图标、上传的文件名、文件的大小。 3、上传后,