Delphi Xe DataSnap Rest + Flex 开发 基本探索4(返回字节流 stream)
2014-09-04 15:45
471 查看
在看本文章前,请参考前面的 部分代码和介绍
从后台取字节流 stream 返回到前台 应该是一个比较重要的数据交互过程,比如前台需要从后台加载一个图片
后台代码
前台的效果图
(md 图片上传不了)
![](http://img.blog.csdn.net/20140904155253713?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVjb25nemhlbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注意这里我是直接返回的delphi的Tstream类 实际上 可以返回 TJsonArray 对象
这种方式我觉得更好一下 要用到
从后台取字节流 stream 返回到前台 应该是一个比较重要的数据交互过程,比如前台需要从后台加载一个图片
后台代码
function TSMTest.GetStream: TStream; var fstream:TmemoryStream; buf:TByteArray; I: Integer; begin stream:=TFileStream.Create('browser.png',fmOpenRead);//后台的一个图片 fstream := Tmemorystream.Create; fstream.LoadFromStream(stream); //stream := fstream; result := fstream; end;
前台的效果图
(md 图片上传不了)
前台代码 private var stream:URLStream = new URLStream(); private var bytes:ByteArray = new ByteArray(); protected function btnstream_clickHandler(event:MouseEvent):void { var downLoadURL:URLRequest = new URLRequest(); downLoadURL.url = "http://localhost:8080/datasnap/rest/TSMTest/GetStream"; stream.addEventListener(Event.COMPLETE, onLoadComplete); stream.load(downLoadURL); } public function onLoadComplete(event:Event):void{ if (stream.connected) { var b:int; try { do { b = stream.readByte(); bytes.writeByte(b); } while (true); } catch (e:EOFError) { //Alert.show(bytes.length.toString()); } } var bmp:Loader = new Loader(); bmp.loadBytes(bytes); // bmp.width = imgpng.width; // bmp.height= imgpng.height; imgpng.addChild(bmp); }
注意这里我是直接返回的delphi的Tstream类 实际上 可以返回 TJsonArray 对象
function TSMTest.GetJsonStream: TJSONArray; var fstream:TFileStream; I: Integer; Mar: TJSONMarshal; //序列化对象 jsonobj:TJSONObject; begin fstream:=TFileStream.Create('browser.png',fmOpenRead); result := TDBXJSONTools.StreamToJSON(fstream,0,fstream.Size); fstream.Free; end;
这种方式我觉得更好一下 要用到
TDBXJSONTools工具类 该类在 DBXJSONCommon单元文件中
相关文章推荐
- Delphi Xe DataSnap Rest + Flex 开发 基本探索6(flex 前台 Post 字节流 参数)
- Delphi Xe DataSnap Rest + Flex 开发 基本探索1
- Delphi Xe DataSnap Rest + Flex 开发 基本探索5(Rest 服务参数传递)
- Delphi Xe DataSnap Rest + Flex 开发 基本探索2(取得Json 数组)
- Delphi Xe DataSnap Rest + Flex 开发 基本探索3(取得后台 DataSet 数据集)
- 我的在线讨论和白皮书关于Delphi XE开发REST服务用DataSnap
- delphi xe datasnap rest 相關
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器 .
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器
- 桥接让XE2 DATASNAP中间层支持DELPHI低版本开发客户端
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
- ASP如何调用Delphi开发的DataSnap/Restful接口服务
- (DELPHI_XE)Datasnap 'ERROR_CODE'. The allowed range is 0 to 4294967295'
- delphi DataSnap Stream 传递大数据
- delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息
- DataSnap Rest 服务器网络分配器返回格式定义
- 多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器