WCF-复合类型使用;传输图片
一:WCF服务端
IService1.cs中:
public interface IService1 { [OperationContract] [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)] string Article_Pic_Add_Test(TransPicType picType); } /// <summary> /// 图片传输用到的复合类型 /// </summary> [DataContract] public class TransPicType { byte[] byteValue = null; string stringType = ""; [DataMember] public byte[] ByteValue { get; set; } [DataMember] public string StringValue { get; set; } }
Service1.svc.cs中:
public string Article_Pic_Add_Test(TransPicType picType) { string app_path = AppDomain.CurrentDomain.BaseDirectory; byte[] bs = picType.ByteValue; string getStr = picType.StringValue; //string imgString = String.Join(",", Array.ConvertAll(bs, (Converter<byte, string>)Convert.ToString));//将byte[]转换为字符串 File.WriteAllBytes(app_path + "b6.png", bs);//将图片写入app_path return null; }
二:客户端调用
0、先添加服务引用。。。这个不懂的可以搜一下、微软都搞成傻瓜一键式的了···
1、Web.config中(地址和契约根据自己的情况改下就行了):
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="webBehavior"> <webHttp/> </behavior> </endpointBehaviors> </behaviors> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IService1" /> </basicHttpBinding> <webHttpBinding> <!--跨域--> <binding name="webBinding"> </binding> </webHttpBinding> </bindings> <client> <endpoint address="http://localhost:16625/Service1.svc" binding="webHttpBinding" bindingConfiguration="webBinding" contract="ser.IService1" name="test" behaviorConfiguration="webBehavior" /> </client> </system.serviceModel>
2、Default.aspx.cs中:
using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication1 { public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) { string app_path = AppDomain.CurrentDomain.BaseDirectory; byte[] bs = this.BmpToJpegBuff(app_path + "a.jpg"); ser.Service1Client s = new ser.Service1Client(); ser.TransPicType pt = new ser.TransPicType(); pt.ByteValue = bs; pt.StringValue = "测试文字"; s.Article_Pic_Add_Test(pt); int i = 0; } public byte[] BmpToJpegBuff(string filePath) { System.Drawing.Image img = System.Drawing.Image.FromFile(filePath); ImageConverter converter = new ImageConverter(); byte[] bmpSrc = (byte[])converter.ConvertTo(img, typeof(byte[])); MemoryStream ms = new MemoryStream(bmpSrc); MemoryStream msjpg = new MemoryStream(); Bitmap myBitmap = new Bitmap(ms); myBitmap.Save(msjpg, ImageFormat.Jpeg); byte[] bjpeg = msjpg.GetBuffer(); return bjpeg; } } }
转换图片的方法用到了:blog.csdn.net/ruijc/article/details/5809139写的、辛苦、、、O(∩_∩)O
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2015-10-12 <转>Npoi导入导出Excel操作<载>
2015-10-12 将DataTable导出为Excel C#