首页 > 代码库 > WCF-复合类型使用;传输图片
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 = http://www.mamicode.com/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 = http://www.mamicode.com/(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
WCF-复合类型使用;传输图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。