C#中操作Stream与Byte Array
2008-10-09 20:54
295 查看
C#中操作Stream与Byte Array
2008-08-01 20:41
2008-08-01 20:41
本文为frank的学习笔记,转载请注明原文链接 C#中结合Post发送的Stream与Byte Array的操作似乎资料很少.下面是我这几天的研究成果.功能是将同文件夹下的a.jpg复制生成b.jpg.代码如下: byteArray.aspx.cs using System; using System.IO; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Net; /*@ Author:frank Site:www.2solo.cn Date:2008.02.20 Info:C#复制图片,流与byteArray的应用,生成图片部分 */ namespace bArray { public partial class imgHandler : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { Stream sin = Page.Request.InputStream; System.Drawing.Image img = System.Drawing.Bitmap.FromStream(sin); Bitmap bmp = new Bitmap(img); MemoryStream bmpStream = new MemoryStream(); bmp.Save(bmpStream, System.Drawing.Imaging.ImageFormat.Jpeg); FileStream fs = new FileStream(System.Web.HttpContext.Current.Server.MapPath("b.jpg"), FileMode.Create); bmpStream.WriteTo(fs); bmpStream.Close(); fs.Close(); bmpStream.Dispose(); fs.Dispose(); Response.Write("成功"); } catch { Response.Write("失败"); } } } } gopost.aspx.cs using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Net; using System.Text; /*@ Author:frank Site:www.2solo.cn Date:2008.02.20 info:C#复制图片,流与byteArray的应用,提交图片部分 */ namespace gopost { public partial class postHandler : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { postImage(); } private void postImage() { try { HttpWebRequest request; string imgUrl = System.Web.HttpContext.Current.Server.MapPath("a.jpg"); request = (HttpWebRequest)HttpWebRequest.Create(http://localhost/byteArray/byteArray.aspx); request.KeepAlive = true; request.Method = "POST"; byte[] byteArray = CvtImgBArr((System.Drawing.Image)new Bitmap(@imgUrl), ImageFormat.Jpeg); request.ContentType = "image/JPEG"; request.ContentLength = byteArray.Length; Stream newStream = request.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length); newStream.Close(); Response.Write("复制图片成功"); } catch { Response.Write("复制图片失败"); } } private static byte[] CvtImgBArr(System.Drawing.Image imageToConvert, ImageFormat formatOfImage) { byte[] imArr; try { using (MemoryStream myms = new MemoryStream()) { imageToConvert.Save(myms, formatOfImage); imArr = myms.ToArray(); } } catch (Exception) { throw; } return imArr; } } } 相对来说,byte Array在Html表单中的应用可能一直被忽视,但是正确的应用byte Array可以大大的优化程序,并做出一些意想不到的效果来。当然,我研究byte Array主要还是为了最近的Flash研究. 附上范例文件:http://www.2solo.cn/upload/cbyteArray_2soloDOTcn.zip |
相关文章推荐
- C#操作文本读写流--- StreamWritter and StreamReader
- C#StreamWriter的操作解析
- c#常见stream操作
- c#常见stream操作
- c#操作excel方式一:stream简单读写excel
- C# StreamReader文件处理操作解析
- c#操作excel方式一:stream简单读写excel
- c# 文件IO操作 StreamReader StreamWriter Split 使用
- c#操作excel方式一:stream简单读写excel
- C# 文件操作之 StreamReader & StreamWriter
- c# 文件IO操作 StreamReader StreamWriter Split 使用
- C# WORD操作实现代码
- C#文件操作大全
- C# 对ini文件的读写操作实例
- C#操作XML的完整例子——XmlDocument篇
- 【C#】C#操作XML方法:新增、修改和删除节点与属性
- Stream API---终止操作
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- 44、C#操作Excel小结
- C#跨窗体操作(引用传递)