一: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 = ;
} 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

WCF-复合类型使用;传输图片的更多相关文章

  1. 实现在GET请求下调用WCF服务时传递对象(复合类型)参数

    WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...

  2. 第54讲:Scala中复合类型实战详解

    今天学习了scala的复合类型的内容,让我们通过实战来看看代码: trait Compound_Type1trait Compound_Type2class Compound_Type extends ...

  3. go语言 类型:基础类型和复合类型

    Go 语言中包括以下内置基础类型:布尔型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮点型:floa ...

  4. C语言中的复合类型

    复合类型 一.掌握的类型 1. 指针数组 int * arr[10]; //arr是一个数组,有10个元素,每个元素都是一个指针,即arr是一个指针数组 int a,b,c,d; arr[0] = & ...

  5. 学习C++.Primer.Plus 4 复合类型

    本章介绍的有复合类型有: 数组. 字符串. 结构. 共用体. 指针 数组: 声明数组时数组长度必须为常量(或const). 只有初始化时可以用“=”,其它时候均不可以给数组直接赋值,除了赋值的元素以外 ...

  6. WCF绑定类型选择

    WCF绑定类型选择   发布日期:2010年12月10日星期五 作者:EricHu   在开发WCF程序时,如何选择一个适合的绑定对于消息传输的可靠性,传输模式是否跨进程.主机.网络,传输模式的支持. ...

  7. C++Primer快速浏览笔记-复合类型

    C++Primer2.3节介绍了两种复合类型:引用和指针 1.引用 引用并非对象,它只是为一个已经存在的对象所起的别名. 一旦初始化完成,引用将和它的初始值对象一直绑定在一起,不能重新绑定到另一个对象 ...

  8. Scala 深入浅出实战经典 第54讲:Scala中复合类型实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  9. struts复合类型传值(对象传值)

    01:导包,配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version ...

随机推荐

  1. asp.net接收ajax请求参数时为空的现象

    如题,如果使用ajax请求asp.net后台时,如果使用jquery时,默认是添加了请求头,使后台能识别,并能通过Request对象进行获取. 但是如果你使用的是window.XMLHttpReque ...

  2. subprocess实现管道

    # shell last | cut -d ' ' -f 1 | sort -u #python from subprocess import Popen,PIPE p1 = Popen('last' ...

  3. MAC中Django中runserver提示Can't connect to local MySQL server through socket '/tmp/mysql.sock错误

    好像不止遇到一次,直接Google就可以了,在stackoverflow中就有答案,答案就是你没有开MySQL - -. stackoverflow链接见 http://stackoverflow.c ...

  4. 【JavaScript与JQuery获取H2的内容】

    撰写日期:2016-7-13 11:05:07 JavaScript与JQuery获取DOM内容是有区别的,接下来看一例子 栗子: Jquery-获取H3中的内容然后Dom转换为Jquery < ...

  5. iOS 获得当前经纬度和城市

    1.引入CoreLocation.framework,#import <CoreLocation/CoreLocation.h>,添加委托CLLocationManagerDelegate ...

  6. vc++ 中 IntelliSense: 无法打开 源 文件 "xxx.h"

    类似无法找到文件的问题都可以用这个方法解决,就是路径的问题.vc++2008的项目转到vc++2010也可能出现类似的问题. 解决方法: 在  项目属性=>配置属性=>C/C++  =&g ...

  7. html代码规范

    HTML代码规范   我们知道,前端工程师入门容易,通过学习基本的HTML和CSS就能在浏览器上看到实际的效果,可是要写好的HTML,就不是那么容易了.这里将和大家分享HTML规范,希望大家读完之后都 ...

  8. WinForm------TextEdit控件内容字体变*号

    "属性" -> “Properties” -> “LookAndFeel” -> “PasswordChar”

  9. docker mysql

    创建mysql docker容器 github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像dao ...

  10. js 正则表达式提取内容

    var wlan = /([a-zA-Z0-9]+)\s+Scan completed :/ var current_wlan="" if (line.match("Sc ...