C# WinForm 上传多文件和数据

public static class HttpHelper{private static readonly Encoding DEFAULTENCODE = Encoding.UTF8;/// <summary>/// HttpUploadFile/// </summary>/// <param name="url"></param>/// <param name="file"></param>/// <param name="data"></param>/// <returns></returns>public static string HttpUploadFile(string url, string file, NameValueCollection data){return HttpUploadFile(url, file, data, DEFAULTENCODE);}/// <summary>/// HttpUploadFile/// </summary>/// <param name="url"></param>/// <param name="file"></param>/// <param name="data"></param>/// <param name="encoding"></param>/// <returns></returns>public static string HttpUploadFile(string url, string file, NameValueCollection data, Encoding encoding){return HttpUploadFile(url, new string[] { file }, data, encoding);}/// <summary>/// HttpUploadFile/// </summary>/// <param name="url"></param>/// <param name="files"></param>/// <param name="data"></param>/// <returns></returns>public static string HttpUploadFile(string url, string[] files, NameValueCollection data){return HttpUploadFile(url, files, data, DEFAULTENCODE);}/// <summary>/// HttpUploadFile/// </summary>/// <param name="url"></param>/// <param name="files"></param>/// <param name="data"></param>/// <param name="encoding"></param>/// <returns></returns>public static string HttpUploadFile(string url, string[] files, NameValueCollection data, Encoding encoding){string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");byte[] boundarybytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");byte[] endbytes = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");//1.HttpWebRequestHttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request.ContentType = "multipart/form-data; boundary=" + boundary;request.Method = "POST";request.KeepAlive = true;request.Credentials = CredentialCache.DefaultCredentials;using (Stream stream = request.GetRequestStream()){//1.1 key/valuestring formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";if (data != null){foreach (string key in data.Keys){stream.Write(boundarybytes, 0, boundarybytes.Length);string formitem = string.Format(formdataTemplate, key, data[key]);byte[] formitembytes = encoding.GetBytes(formitem);stream.Write(formitembytes, 0, formitembytes.Length);}}//1.2 filestring headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: application/octet-stream\r\n\r\n";byte[] buffer = new byte[4096];int bytesRead = 0;for (int i = 0; i < files.Length; i++){stream.Write(boundarybytes, 0, boundarybytes.Length);string header = string.Format(headerTemplate, "file" + i, Path.GetFileName(files[i]));byte[] headerbytes = encoding.GetBytes(header);stream.Write(headerbytes, 0, headerbytes.Length);using (FileStream fileStream = new FileStream(files[i], FileMode.Open, FileAccess.Read)){while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0){stream.Write(buffer, 0, bytesRead);}}}//1.3 form endstream.Write(endbytes, 0, endbytes.Length);}//2.WebResponseHttpWebResponse response = (HttpWebResponse)request.GetResponse();using (StreamReader stream = new StreamReader(response.GetResponseStream())){return stream.ReadToEnd();}}}

文件过大解决:

修改服务器配置文件web.config:

添加

    <httpRuntime executionTimeout="10" maxRequestLength="51200"useFullyQualifiedRedirectUrl="true" minFreeThreads="8"minLocalRequestFreeThreads="4" appRequestQueueLimit="100"  enableVersionHeader="true"/>

转载于:https://www.cnblogs.com/tianciliangen/p/4585115.html

C# WPF ASP.net 上传多文件和数据相关推荐

  1. asp.net 上传大文件控件

    这段时间写了个asp.net 上传大文件控件.经过测试,在ie中可显示进度条.特此共享,望广大网友多提意见. 大文件上传控件(包含进度条) 使用说明如下: <summary>      上 ...

  2. ASP.NET上传下载文件

    ASP.NET上传下载文件 上传文件: using System; using System.Collections.Generic; using System.Linq; using System. ...

  3. 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法

    前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...

  4. Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度

    ====================================================== 注:本文源代码点此下载 ================================= ...

  5. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  6. 用ASP.NET上传大文件

    作者:思归     微软MVP   http://blog.joycode.com/saucer/ 我们在上传大文件时都遇到过这样或那样的问题.设置很大的maxRequestLength值并不能完全解 ...

  7. Asp.Net 上传大文件

    HttpModule.cs 代码 namespace WebUploadFile {     public class HttpUploadModule : IHttpModule     {     ...

  8. asp.net 上传大文件解决方案(转)

    这次在项目中,用到了大文件上传,要上传的文件有100多m,于是研究现在国内使用的大文件上传的 组件发现用的比较多的有两个控件AspnetUpload 2.0和Lion.Web.UpLoadModule ...

  9. asp.net C# 实现上传Excel文件导入数据到SQL Server 数据库

    前台代码,有点简单: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server&q ...

  10. ASP.NET上传一个文件夹

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

最新文章

  1. sony硬盘摄象机误格式化(fat32)的数据恢复
  2. 一步步编写操作系统 54 CPL和DPL入门1
  3. git安装-centos版
  4. 接口自动化持续集成实战
  5. 一个中产阶级丈夫给坚持买房妻子的一封信
  6. 处理手机上点击链接出现的蓝色边框
  7. Windows 8.1安装python出现api-ms-win-crt-runtime-l1-1-0.dll
  8. 天天生鲜项目需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一)...
  9. 从零开始学编程系列汇总
  10. 网络存储与容灾系统-作业二
  11. 在经历了6个月的学习后,我终于上架了自己的第一款APP---酷课堂iOS群问答精华整理(201807期)
  12. VR和AR已从概念转为真正走进人们生活的实际应用
  13. ICC/ICC2 or INN 一点不成熟的浅见
  14. 分类网络(一)VGG
  15. 怪物之心无法触发_《异度神剑2》力男支线任务怪物之心流程介绍
  16. 【前端】JavaScript-节点操作
  17. FlexRay AUTOSAR网络管理(AUTOSARFRNM)简介
  18. 计算机应用退修后多久知道结果,计算机核心论文投稿的一点碎碎念
  19. 深入正则表达式(0):正则表达式概述
  20. 搭积木——pythonOJ笔记

热门文章

  1. Android开发中的SQLite事务处理,即beginTransaction()方法
  2. 理解 Visual C++ 应用程序的依赖项(msdn)
  3. free C# Ebook (Amazing amount of ebooks available)
  4. go - range
  5. html5鼠标载入弹出信息框,js实现自定义弹出对话框(弹窗)可拖拽
  6. 记 笔记软件极力推荐------------->思源
  7. 如何在 Ubuntu 上安装 MongoDB
  8. [渝粤教育] 山东财经大学 国际经济学 参考 资料
  9. 【渝粤教育】国家开放大学2018年春季 0047-21T计算机办公软件应用 参考试题
  10. 2013北理机试题——中缀算术表达式对应二叉树的先序遍历