您的位置:首页 > 编程语言 > Delphi

Delphi Xe DataSnap Rest + Flex 开发 基本探索6(flex 前台 Post 字节流 参数)

2014-09-04 16:13 585 查看
在看本文章前请 参考前面的文章

这篇文章 介绍 flex 如何 在调用delphi datasnap 的Rest服务过程中以 大量的数据为参数 (字节流 )

该方法 在网络上 基本没有资料,废掉了我无数的脑细胞啊,再次 bs emb 帮助太操蛋了

首先 大量的数据不能通过前面的方式 直接写在Rest 地址的后面.

我用了http post 方法

效果如下



这是flex 前台传输到后代的 字节码,后台代码如下

function TSMTest.updateSetBytes(stream:TJSONObject): string;
var
i:integer;
begin

FrmMain.Memo1.Lines.Add('jsonValue:'+(stream.ToString));
end;


主要 是参数为Tjsonobject

前台 主要是传输了一个 jpg的图片



前台代码如下

var fileReference:FileReference = new FileReference();
protected function btnUpLoad_clickHandler(event:MouseEvent):void
{

fileReference.addEventListener(Event.SELECT, onSelect);
fileReference.addEventListener(Event.COMPLETE,onComplete);
//urlRequest = new URLRequest("http://localhost:8666/Ashx/FileHandler.ashx");

browse();
}

private function onSelect(evt:Event):void{
labstate.text="文件:"+fileReference.name+"      "+"大小:"+fileReference.size+"字节";
fileReference.load();
}
private function onComplete(evt:Event):void{
imgUpload.source=fileReference.data;
var read :ReadDataFromServer = new ReadDataFromServer();
read.onLoadComplete = onBytesParam;

var barr:ByteArray= fileReference.data;

barr.position =0;
var  arr:Array = new Array();
for(var i:int=0;i<barr.length;i++){
arr.push(barr.readUnsignedByte());
}
var ubArr:ByteArray = new ByteArray();
for( i=0;i<arr.length;i++){
ubArr.writeUnsignedInt(arr[i]);
}

var str :String ='{"Array":['+ JSON.encode(arr)+"]}";
read.PostJson('datasnap/rest/TSMTest/SetBytes',str);
///////////////////////////////////////////

}
public function onBytesParam(e:Event):void{

}
private function browse():void{
var imageTypes:FileFilter = new FileFilter("图片 (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");
var allTypes:Array = new Array(imageTypes);
try
{
fileReference.browse(allTypes);
}
catch(e:Error)
{
Alert.show(e.message+"&&"+e.getStackTrace());
}
}


注意
'datasnap/rest/TSMTest/SetBytes'
这个方法,后台必须 在方法名 加上 update 这个头,不知道为什么....

哎摸索上面的方法,真是不容易啊,,再次bs emb 为啥 资料不搞详细点,李维老师的 datasnap 实战 的书籍 中的介绍也 感觉很粗糙......希望李老师能再出几本精品的书籍啊.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: