首页 > 编程 > C# > 正文

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

2020-01-24 01:35:49
字体:
来源:转载
供稿:网友

本文实例讲述了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#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表