c# httppost方法

public struct PostFile

{

public string name;

public string filename;

public Stream bitmapStream;

}

public string PostStringFormPic(Dictionary<string, string> paramData, PostFile postfile, Encoding EncodingPostData = null, Encoding EncodingReadStream = null)

{

webRequest.Method = "POST";

//string ret = string.Empty;

Stream newStream = null;

//StreamReader sr = null;

        if (EncodingReadStream == null)
{
EncodingReadStream = Encoding.UTF8;
}
if (EncodingPostData == null)
{
EncodingPostData = Encoding.UTF8;
} try
{
//EncodingPostData = Encoding.GetEncoding("GB2312");
// 边界符
var boundary = "---------------" + DateTime.Now.Ticks.ToString("x");
// 边界符
var beginBoundary = Encoding.ASCII.GetBytes("--" + boundary + "\r\n");
// 最后的结束符
var endBoundary = Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
webRequest.ContentType = "multipart/form-data; boundary=" + boundary;
var memStream = new MemoryStream();
memStream.Write(beginBoundary, 0, beginBoundary.Length); var header = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" +
"Content-Type: image/jpeg\r\n\r\n";
header = string.Format(header, postfile.name, postfile.filename);
var headerbytes = EncodingPostData.GetBytes(header);
memStream.Write(headerbytes, 0, headerbytes.Length); postfile.bitmapStream.CopyTo(memStream); var stringKeyHeader = "\r\n--" + boundary +
"\r\nContent-Disposition: form-data; name=\"{0}\"" +
"\r\n\r\n{1}"; // var rn = "\r\n";//换行
// var rnlength = rn.Length;
foreach (var item in paramData)
{ string data = string.Format(stringKeyHeader, item.Key, item.Value);
byte[] bdata = EncodingPostData.GetBytes(data);
memStream.Write(bdata, 0, bdata.Length);
//memStream.Write(EncodingPostData.GetBytes(rn), 0, rnlength); } // 写入最后的结束边界符
memStream.Write(endBoundary, 0, endBoundary.Length); webRequest.ContentLength = memStream.Length;
//byte[] byteArray = EncodingPostData.GetBytes(paramData); //转化
// byte[] byteArray = Encoding.ASCII.GetBytes(paramData);
// webRequest.ContentLength = byteArray.Length;
ServicePointManager.Expect100Continue = false; newStream = webRequest.GetRequestStream(); memStream.Position = 0;
var tempBuffer = new byte[memStream.Length];
memStream.Read(tempBuffer, 0, tempBuffer.Length);
memStream.Close(); newStream.Write(tempBuffer, 0, tempBuffer.Length);//写入参数
newStream.Close();
//webResponse = (HttpWebResponse)webRequest.GetResponse();
////CheckProxy();
//sr = new StreamReader(webResponse.GetResponseStream(), EncodingReadStream);
//ret = sr.ReadToEnd();
//return ret; string result = string.Empty;
webResponse = (HttpWebResponse)webRequest.GetResponse();
CheckProxy(); if (webResponse.ContentEncoding.ToLower() == "gzip")//如果使用了GZip则先解压
{
using (System.IO.Stream stream = webResponse.GetResponseStream())
{
using (var zipStream =
new System.IO.Compression.GZipStream(stream, System.IO.Compression.CompressionMode.Decompress))
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(zipStream, EncodingReadStream))
{
result = sr.ReadToEnd();
}
}
}
}
else
{
using (System.IO.Stream stream = webResponse.GetResponseStream())
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(stream, EncodingReadStream))
{
result = sr.ReadToEnd();
}
}
} return result;
}
finally
{ if (WebResponse != null)
WebResponse.Close();
if (newStream != null)
newStream.Close();
}
}

php端接收 laravel框架

public function upload_headimg(Request $request)

{

//解析回传数据

$extend_data = json_decode(urldecode($request->input('extend_data', '')));

    try {

        $wxnum_model = new Models\Wxnum();
//微信公众号信息
$wxnum_info = $wxnum_model->select_wxnuminfo($extend_data->task_id); $pb_headimg = array();
if ($request->hasFile('fileName')) {
$pb_headimg = $wxnum_model->update_headimg($wxnum_info, $request->file()['fileName']->getRealPath());
} if (count($pb_headimg) > 0) Models\Wxnum::where('id', $wxnum_info->id)->update($pb_headimg); return Models\ResponseRet::return_msg_success();
} catch (\Exception $e) {
Log::info('上传公众号头像:', $request->all());
Log::error(sprintf("%s 上传公众号头像失败 %s", $request->input('u_name', ''), $e->getMessage()));
return Models\ResponseRet::return_msg('1013');
}
}

c# 上传图片流,php端(laravel框架)接收处理方法的更多相关文章

  1. android上传图片、视频、文件,服务端使用wcf接收

    最近一直在搞android上传图片.视频.文件,服务端使用wcf接收,本文对调试中的遇到的问题进行记录. 首先android上传一些小图片是比较容易的一天下来差不多就能调试出来,但是上传一些大的文件时 ...

  2. 利用webuploader插件上传图片文件,完整前端示例demo,服务端使用SpringMVC接收

    利用WebUploader插件上传图片文件完整前端示例demo,服务端使用SpringMVC接收 Webuploader简介   WebUploader是由Baidu WebFE(FEX)团队开发的一 ...

  3. Laravel框架使用融云服务端SDK

    方法一:  使用第三方依赖安装(在项目根目录) 第一步:安装        composer require latrell/rongcloud dev-master 第二步:更新依赖包      c ...

  4. 基于laravel框架构建最小内容管理系统

    校园失物招领平台开发 --基于laravel框架构建最小内容管理系统 摘要 ​ 针对目前大学校园人口密度大.人群活动频繁.师生学习生活等物品容易遗失的基本现状,在分析传统失物招领过程中的工作效率低下. ...

  5. [php]laravel框架容器管理的一些要点

    本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...

  6. php的laravel框架快速集成微信登录

    最终的解决方案是:https://github.com/liuyunzhuge/php_weixin_provider,详细的介绍请往下阅读. 本文面向的是php语言laravel框架的用户,介绍的是 ...

  7. 使用 Laravel 框架:成为微信公众平台开发者

    转: http://ninghao.net/blog/1441 作者:王皓发布于:2014-05-30 13:16更新于:2014-05-31 12:05 我们可以使用Laravel 框架为微信公众平 ...

  8. laravel框架中所用到的依赖注入

    用Laravel开发前前后后有2个月左右了,之前一直写Java,就像找到Java和PHP之前的共同点,用Java的某些原理去理解PHP会发现还是有很多共通之处的.Java的依赖注入已经是一个很常见的概 ...

  9. 关于laravel框架的跨域请求/jsonp请求的理解

    最近刚接触laravel框架,首先要写一个跨域的单点登录.被跨域的问题卡了两三天,主要是因为对跨域这快不了解,就在刚才有点茅塞顿开的感觉,我做一下大概整理,主要给一些刚接触摸不着头脑的看,哪里写得不对 ...

随机推荐

  1. js几种创建对象的方式

    javascript是一种“基于prototype的面向对象语言“,与java有非常大的区别,无法通过类来创建对象.那么,既然是面象对象的,如何来创建对象呢? 一.通过”字面量“方式创建. 方法:将成 ...

  2. 搭建ssh框架项目(四)

    一.创建控制层 (1)创建VO值对象,对应页面表单的属性值 package com.cppdy.ssh.web.form; /** * VO值对象,对应页面表单的属性值 * VO对象与PO对象的关系: ...

  3. 对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder

    package zhengze; /*如果需要对字符串进行频繁拼接的话,使用StringBuffer或者StringBuilder StringBuffer:[字符串缓冲器]是线程安全的,效率低 St ...

  4. 字符串反转,例如"abc"反转"cba"

    package stringyiwen; /* * 字符串反转,例如"abc"反转"cba" */public class StringTestChar { p ...

  5. 《剑指offer》-二叉搜索树与双向链表

    输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 题目的描述不是很习惯.题目的意思是把二叉树从左到右遍历,相当于双向链表的遍历. 其实 ...

  6. The last packet sent successfully to the server was 0 milliseconds ago.[nutch---mysql ]

    今天在使用JDBC操作mysql时遇到下面的异常信息: 引用 The last packet sent successfully to the server was 0 milliseconds ag ...

  7. Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路

    http://blog.jobbole.com/111422 Java 生态圈 Java 的生态环境开放.自由,在Sun/Oracle.Google.Apache.Eclipse基金会等各大厂商,还有 ...

  8. 【BZOJ1786】[Ahoi2008]Pair 配对

    题解: 打表出奇迹 能发现所有ai一定是不减的 其实很好证明啊.. 考虑两个位置x y(y在x右边) x的最优值已经知道了 考虑y处 先让y=x,然后开始变化 因为x处已经是最优的了,所以如果减小,那 ...

  9. centos6.9上mongdb安装

    一.设置yum源 vi /etc/yum.repos.d/mongodb.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https:// ...

  10. MSF《构建之法》阅读笔记5

    第七章 MSF MSF是一种软件开发方法,MSF原则包括1推动信息共享和沟通,2为共同的远景而工作,3充分授权和信任,4各司其职,对项目共同负责,5交付增量的价值,6保持敏捷,预期和适应变化,7投资质 ...