想用webservice把一张图片传输到客户端上,在客户端的picturebox上显示出来,请问代码怎么写,客户端是winform形式的,图片是存在服务器端的。
知道可以通过二进制流的形式来进行传输,具体怎么实现,如何转换,如何还原。请提供一下代码。
------解决方案--------------------
webservice
- C# code
public bool ImageUpload(byte[] btMS,string strImgPath) { try { ///定义并实例化一个内存流,以存放提交上来的字节数组。 MemoryStream ms = new MemoryStream(btMS); ///定义实际文件对象,保存上载的文件。 FileStream f = new FileStream(strImgPath, FileMode.Create); ///把内内存里的数据写入物理文件 ms.WriteTo(f); ms.Close(); f.Close(); f = null; ms = null; return true; } catch(Exception ex) { return false; } }
------解决方案--------------------
base64把图像数据编码后发出去。
------解决方案--------------------
楼主,我给你一个简单点的吧,复杂的你在这个基础上加好了,仅讲述原理,没有压缩和其他编解码转换。
Web Service端代码:
- C# code
[WebMethod] public byte[] GetFileBytes() { return File.ReadAllBytes("D:/vmware-sn.bmp");//读取文件到一个byte数组,文件你可以改成相应的文件 }
------解决方案--------------------
你可以再这个代码的基础上加入压缩,甚至不要直接传byte,加密转换以后再传(如果图片需要保密的话),基本的架构大概差不多这样的。
------解决方案--------------------
base64 byte[]
类型传入