C#远程发送和接收数据流生成图片的方法

所属分类: 软件编程 / C#教程 阅读数: 57
收藏 0 赞 0 分享

本文实例讲述了C#远程发送和接收数据流生成图片的方法。分享给大家供大家参考。具体如下:

将图片转成数据流方式发送到远程服务,在通过服务器后台程序来接收数据流,再保存成图片存放在需要的地方。

这种方式就类似上传图片功能一样,希望能给一些大家另一种上传图片功能的方法。

发送数据流方法

/// <summary>
/// PostBinaryData
/// </summary>
/// <param name="url">要发送的 url 网址</param>
/// <param name="bytes">要发送的数据流</param>
/// <returns></returns>
public string PostBinaryData(string url, byte[] bytes)
{
  //下面是测试例子
  //string url = "http://www.test.com/test.ashx";
  //string img = HttpContext.Current.Server.MapPath("../images/test.jpg");
  //byte[] bytes = File.ReadAllBytes(img);
  HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(url);
  wRequest.ContentType = "multipart/form-data";
  wRequest.ContentLength = bytes.Length;
  wRequest.Method = "POST";
  Stream stream = wRequest.GetRequestStream();
  stream.Write(bytes, 0, bytes.Length);
  stream.Close();
  HttpWebResponse wResponse = (HttpWebResponse)wRequest.GetResponse();
  StreamReader sReader = new StreamReader(wResponse.GetResponseStream(), System.Text.Encoding.UTF8);
  string str = sReader.ReadToEnd();
  sReader.Close();
  wResponse.Close();
  return str;
}

接收数据流方法

public void GetBinaryData()
{
  string imgFile = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";
  string filePath = HttpContext.Current.Server.MapPath(imgFile);
  //方法一
  int lang = HttpContext.Current.Request.TotalBytes;
  byte[] bytes = HttpContext.Current.Request.BinaryRead(lang);
  string content = System.Text.Encoding.UTF8.GetString(bytes);
  FileStream fStream = new FileStream(filePath, FileMode.Create, FileAccess.Write);
  BinaryWriter bw = new BinaryWriter(fStream);
  bw.Write(bytes);
  bw.Close();
  fStream.Close();    
  //方法二
  Bitmap img = new Bitmap(HttpContext.Current.Request.InputStream);
  img.Save(filePath);
  HttpContext.Current.Response.Write("ok");
}

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

更多精彩内容其他人还在看

C# SendInput 模拟鼠标操作的实现方法

C# SendInput 模拟鼠标操作的实现方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中 paint()与Onpaint()的区别

paint是事件onpaint方法onpaint方法是调用paint事件的,用哪一个,效果是一样,就看那一个方便了内部是这样实现的:
收藏 0 赞 0 分享

c#中GetType()与Typeof()的区别

c#中GetType()与Typeof()的区别,需要的朋友可以参考一下
收藏 0 赞 0 分享

将字符串转换成System.Drawing.Color类型的方法

将字符串转换成System.Drawing.Color类型的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

C# 抓取网页内容的方法

C# 抓取网页内容的方法,需要的朋友可以参考一下
收藏 0 赞 0 分享

基于C#后台调用跨域MVC服务及带Cookie验证的实现

本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下
收藏 0 赞 0 分享

使用C#获取远程图片 Form用户名与密码Authorization认证的实现

本篇文章介绍了,使用C#获取远程图片 Form用户名与密码Authorization认证的实现。需要的朋友参考下
收藏 0 赞 0 分享

Winform跨线程操作的简单方法

线程间操作无效:从不是创建控件“label1”的线程访问它
收藏 0 赞 0 分享

C# WINFORM 强制让窗体获得焦点的方法代码

C# WINFORM 强制让窗体获得焦点的方法代码,需要的朋友可以参考一下
收藏 0 赞 0 分享

C#中方括号[]的语法及作用介绍

C#中方括号[]可用于数组,索引、属性,更重要的是用于外部DLL类库的引用。
收藏 0 赞 0 分享
查看更多