1、第一种方式:用最新框架,但是针对IIS服务器的操作系统有关系,非R2的收不到数据;

using (var reqConts = new MultipartFormDataContent())
{
for (int i = ; i < colletion.Count; i++)
{
HttpPostedFileBase file = colletion[i];
string extName = Path.GetExtension(file.FileName);
string fileName = Guid.NewGuid().ToString() + extName;
var stream = new StreamReader(file.InputStream).BaseStream;
var streamCont = new StreamContent(stream);
streamCont.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");//image/*
streamCont.Headers.ContentLength = stream.Length;
reqConts.Add(streamCont, "image_binary" + i, fileName);
}
var respone = client.PostAsync(uploadUrl, reqConts).Result.Content.ReadAsStringAsync();
var res = respone.Result;
Basics.LogFun.Instance().WriteLog(LogFunType.SystemErrLog, "接收发送请求结果:" + res);
JsonSerializer serializer = new JsonSerializer();
using (var jsonReader = new JsonTextReader(new StringReader(respone.Result)))
{
Result crrresult = serializer.Deserialize<Result>(jsonReader);
if (crrresult.Success) {
return Content(ReturnMessage(true, "处理成功"));
}
}
}

2、第二种方式,自己组装,参考代码如下

private string postFile(HttpFileCollectionBase httpFileCollection, string postUrl)
{ string encrypt = "f933797503d6e2c36762428a280e0559";
string boundary = "";
#region 定义请求体中的内容 并转成二进制
string Enter = "\r\n"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
request.Method = "POST";
request.ContentType = "multipart/form-data;boundary=--------------------------" + boundary;
request.Accept = "*/*"; Stream myRequestStream = request.GetRequestStream();//定义请求流 for (int i = ; i < httpFileCollection.Count; i++)
{
HttpPostedFileBase file = httpFileCollection[i];
string extName = Path.GetExtension(file.FileName);
string fileName = Guid.NewGuid().ToString() + extName; Stream fileStream = file.InputStream;
byte[] fileContentByte = new byte[fileStream.Length]; // 文件内容二进制
fileStream.Read(fileContentByte, , fileContentByte.Length);
fileStream.Close(); string fileContentStr = Enter + "----------------------------" + boundary + Enter
+ "Content-Type:image/*" + Enter
+ "Content-Disposition: form-data; name=\"image_binary" + i.ToString() + "\"; filename=\"" + fileName + "\"" + Enter + Enter; var fileContentStrByte = Encoding.UTF8.GetBytes(fileContentStr);//fileContent一些名称等信息的二进制(不包含文件本身) myRequestStream.Write(fileContentStrByte, , fileContentStrByte.Length);
myRequestStream.Write(fileContentByte, , fileContentByte.Length);
}
string encryptStr = Enter + "----------------------------" + boundary + Enter
+ "Content-Disposition: form-data; name=\"encrypt\"" + Enter + Enter
+ encrypt + Enter + "--" + boundary + "--"; var encryptStrByte = Encoding.UTF8.GetBytes(encryptStr);//encrypt所有字符串二进制 myRequestStream.Write(encryptStrByte, , encryptStrByte.Length); #endregion HttpWebResponse response = (HttpWebResponse)request.GetResponse();//发送 Stream myResponseStream = response.GetResponseStream();//获取返回值
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close(); return retString;
}

C# 后台POST提交方式的更多相关文章

  1. 后台获取POST方式提交的JSON格式数据

    1.直接使用request.getParamater()的方法获取(这种取参方式对于POST和GET的提交方式均适用): 2.通过请求体的IO流获取参数(这种方式只能用于POST,因为GET方式没有请 ...

  2. Dedecms自定义表单后台列表展现方式更改

    Dedecms有自定义表单功能,方便我们收集用户信息.个人通常喜欢拿这个功能做问卷调查,在线留言等功能.但是如果使用过这个功能的朋友就会知道,Dedecms自定义表单后台列表展现方式并不好看. 上面就 ...

  3. 今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式

    今天在研究jquery用ajax提交form表单中得数据时,学习到了一种新的提交方式 jquery中的serialize() 方法 该方法通过序列化表单值,创建 URL 编码文本字符串 序列化的值可在 ...

  4. [置顶] 网页提交方式post和get的区别和联系

    都知道GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.但具体区别呢?可以互换吗? 主要区别有:1传输数据的方式不同,2传输的数据多少不同,3传输数据的安全性不同4,后台获取数据的方式 ...

  5. 关于Ajax的type为post提交方式出现请求失效问题

    最近碰到这样一个问题,原本一个ajax异步提交数据之前是很好的,很多系统都延用了均未出现任何问题.最近这个版本却出现ajax方式post数据不到后台程序,让我折腾了好几天.起初的ajax是这样写的: ...

  6. POST不同提交方式对应的Content-Type,及java服务器接收参数方式

    POST不同提交方式对应的Content-Type,及java服务器接收参数方式 注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正. 简介: Conten ...

  7. 利用 ajax自定义Form表单的提交方式

    需求场景:有时候单纯的form表单无法向后端传递额外的参数 比如需要action传递js异步生成的参数 ,form表单默认的action就无法满足需求,这时就需要我们自定义form表单的提交方式. h ...

  8. React前端框架路由跳转,前端回车事件、禁止空格、提交方式等方法

    react router - historyhistory.push() 方法用于在JS中实现页面跳转history.go(-1) 用来实现页面的前进(1)和后退(-1) 访问js连接后+?v1清缓存 ...

  9. springMVC怎么改变form的提交方式为put或者delete

    想着练习一下创建restful风格的网站呢,结果发现在jsp页面上并不能灵活使用put和delete提交方式.下面我的解决办法 一. form 只支持post和get两种提交方式,只支持get提交方式 ...

随机推荐

  1. 怎样用EA设计ER图

    我们开发系统从文档開始,而EA就是替我们开发文档的好工具.结束了我们从概念设计到逻辑设计中的非常多问题.完好我们的文档. 如今就给大家说说如何在EA中设计概念模型ER图: 首先打开EA-"新 ...

  2. IOS怎么实现一个UITableView的下拉刷新

    採用的EGORefreshTableHeaderView来实现: 在Controller上实现EGORefreshTableHeaderDelegate的delegate @property(nona ...

  3. 改善java程序的151个建议--数组和集合

    60.性能考虑,数组是首选,在基本类型处理方面.数组还是占优势的,并且集合类的底层也都是通过数组实现.建议在性能要求较高的场景中使用数组替代集合. 61.假设有必要.使用变长数组:我们能够通过对数组扩 ...

  4. Angular常用标记

    (如果没有特别指明,则所有的HTML元素都支持该标记) (如果没有特别指明,则 AngularJS 指令不会覆盖原生js的指令) 1.数据绑定类: 1.插值语法:{{}} 2.标签内容绑定:ng-bi ...

  5. 143 - ZOJ Monthly, October 2015 I Prime Query 线段树

    Prime Query Time Limit: 1 Second      Memory Limit: 196608 KB You are given a simple task. Given a s ...

  6. luogu2744 量取牛奶

    题目大意 给出一个整数集合$A$,总数$N$,规定一个整数序列$\{a_n\}, \forall i, a_i\in A$满足条件:存在一个正整数序列$\{k_n\}$,使得$\sum_{i=1}^n ...

  7. PCB SQL SERVER 发送邮件(异步改同步)

    采用SQL SERVER发送邮件是队列方式(异步)发送邮件,所以在我们执行发送邮件后,无法立即获取到邮件是否发送成功了,而在PCB行业实际应用中是需要立即获取发送邮件是否成功的状态来决定下一步逻辑该如 ...

  8. Unity - 简单实例化的应用

    项目描述:每帧实例化一个随机颜色的物体(Cube),坐标在某范围内随机:且物体每帧都会缩小,当缩小到一定的尺寸时,就销毁物体 代码描述: public class CubeSpawner : Mono ...

  9. C# 截取字符串——

    string  strID ="NODE_aSDFghsdfgyuhjidfgh_45678" //得到_ 中间的数 int index = strID.IndexOf(" ...

  10. BZOJ 1129 exgcd+CRT+线段树

    思路: 先copy一下百度百科 作为预备知识吧多重全排列定义:求r1个1,r2个2,…,rt个t的排列数,设r1+r2+…+rt=n,设此排列数称为多重全排列,表示为$P(n;r1,r2,…,rt)$ ...