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 = ;
} 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-复合类型使用;传输图片的更多相关文章
- 实现在GET请求下调用WCF服务时传递对象(复合类型)参数
WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...
- 第54讲:Scala中复合类型实战详解
今天学习了scala的复合类型的内容,让我们通过实战来看看代码: trait Compound_Type1trait Compound_Type2class Compound_Type extends ...
- go语言 类型:基础类型和复合类型
Go 语言中包括以下内置基础类型:布尔型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮点型:floa ...
- C语言中的复合类型
复合类型 一.掌握的类型 1. 指针数组 int * arr[10]; //arr是一个数组,有10个元素,每个元素都是一个指针,即arr是一个指针数组 int a,b,c,d; arr[0] = & ...
- 学习C++.Primer.Plus 4 复合类型
本章介绍的有复合类型有: 数组. 字符串. 结构. 共用体. 指针 数组: 声明数组时数组长度必须为常量(或const). 只有初始化时可以用“=”,其它时候均不可以给数组直接赋值,除了赋值的元素以外 ...
- WCF绑定类型选择
WCF绑定类型选择 发布日期:2010年12月10日星期五 作者:EricHu 在开发WCF程序时,如何选择一个适合的绑定对于消息传输的可靠性,传输模式是否跨进程.主机.网络,传输模式的支持. ...
- C++Primer快速浏览笔记-复合类型
C++Primer2.3节介绍了两种复合类型:引用和指针 1.引用 引用并非对象,它只是为一个已经存在的对象所起的别名. 一旦初始化完成,引用将和它的初始值对象一直绑定在一起,不能重新绑定到另一个对象 ...
- Scala 深入浅出实战经典 第54讲:Scala中复合类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- struts复合类型传值(对象传值)
01:导包,配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version ...
随机推荐
- Windows批处理以服务的方式启动解决思路(ShadowsockR注册成Windows Service)
我以ShadowsockR的server启动来解释: 由于这东西是python,如果要启动,可以写一个批处理(python.exe server.py)来启动,但是我观察发现启动的时候是附带pytho ...
- 恶意软件/BOT/C2隐蔽上线方式研究
catalogue . 传统木马上线方式 . 新型木马上线方式 . QQ昵称上线 . QQ空间资料上线 . 第三方域名上线 . UDP/TCP二阶段混合上线 . Gmail CNC . NetBot两 ...
- (转载)LCA问题的Tarjan算法
转载自:Click Here LCA问题(Lowest Common Ancestors,最近公共祖先问题),是指给定一棵有根树T,给出若干个查询LCA(u, v)(通常查询数量较大),每次求树T中两 ...
- [JavaEE] Entity中Lazy Load的属性序列化JSON时报错
The server encountered an internal error that prevented it from fulfilling this request.org.springfr ...
- iOS 获得当前经纬度和城市
1.引入CoreLocation.framework,#import <CoreLocation/CoreLocation.h>,添加委托CLLocationManagerDelegate ...
- 优化DP的奇淫技巧
DP是搞OI不可不学的算法.一些丧心病狂的出题人不满足于裸的DP,一定要加上优化才能A掉. 故下面记录一些优化DP的奇淫技巧. OJ 1326 裸的状态方程很好推. f[i]=max(f[j]+sum ...
- python从Microsoft Excel文件中导入数据
excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. ...
- NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析
Mifare S50 标准IC卡有1K 字节的EEPROM,主要用来存储数据和控制信息.1K 字节的EEPROM分成16 个区,每区又分成4 段,每1段中有16 个字节.每个区的最后一个段叫“尾部&q ...
- Python字典和集合
Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...
- c++模板类
c++模板类 理解编译器的编译模板过程 如何组织编写模板程序 前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”.看看我们几乎每天都能遇到的模板类吧,如S ...