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

作者:jwang 时间:2021-08-31 00:30:10 

本文实例讲述了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#,数据流,图片
0
投稿

猜你喜欢

  • java并发编程专题(一)----线程基础知识

    2021-10-30 00:28:42
  • 深度解析Java中ArrayList的使用

    2023-06-16 23:26:01
  • Android实现的数字格式化用法示例

    2023-09-30 09:03:28
  • Java SpringBoot拦截器详解

    2021-11-01 15:29:37
  • 新手Hadoop安装 环境搭建

    2022-12-15 05:34:02
  • WinForm实现鼠标拖动控件跟随效果

    2021-12-16 01:31:23
  • 详谈@Autowired和static的关系

    2022-06-14 05:51:50
  • Android实现锁屏荧光效果

    2023-09-02 03:12:03
  • Android蓝牙库FastBle的基础入门使用

    2021-09-21 07:34:21
  • Android项目中gradle的执行流程

    2022-04-08 19:08:15
  • Flutter 日历组件简单实现

    2023-10-21 11:04:35
  • Struts2 文件上传进度条的实现实例代码

    2023-04-20 11:13:59
  • java字符串比较获取字符串出现次数的示例

    2022-03-22 16:05:39
  • Android学习之Broadcast的简单使用

    2023-11-19 15:18:02
  • Android如何设置圆角图片

    2021-12-06 23:35:31
  • springboot 自定义启动器的实现

    2021-06-05 00:33:14
  • 蓝牙原理Android代码实现

    2023-07-10 20:25:31
  • SpringBoot上传文件并配置本地资源映射来访问文件的实例代码

    2023-07-24 02:41:08
  • c#深拷贝文件夹示例

    2023-07-24 07:50:40
  • java实现水果超市管理系统

    2022-02-03 12:52:32
  • asp之家 软件编程 m.aspxhome.com