Delphi datasnap传输流/文件问题


本文整理自网络,侵删。

 
我在datasnap服务器里面定义了方法:

procedure UpdateDoc(ItemID : integer; doc : TStream);
客户端

AServerMethods_PublicClient := TServerMethods_PublicClient.Create(DM_Client.SQLConnection1.DBXConnection);

  ItemText := TMemoryStream.Create;

  try

    ItemText.LoadFromFile('E:\private\ksxt\Source\Client\Win32\Debug\blank.rtf');

    ItemText.Position := 0;

    ShowMessage('ItemText.Size := ' + IntToStr(ItemText.Size));



    AServerMethods_PublicClient.UpdateDoc(6, ItemText);

  finally

    ItemText.Free;

    AServerMethods_PublicClient.Free;

  end;
但是服务器接收到的doc的size始终为-1,无法得到流。

后使用TJSONArray进行转换,可以实现。
服务器这样写

procedure TServerMethods_Public.UpLoadFile(ADoc: TJSONArray);

var

  ADBXJSONTools : TDBXJSONTools;

  AData : TMemoryStream;

begin

  AData := TMemoryStream.Create;

  try

    AData := ADBXJSONTools.JSONToStream(ADoc) as TMemoryStream;

    ShowMessage(IntToStr(AData.Size));

    AData.SaveToFile('123.rtf');

  finally

    Adata.Free;

  end;

end;
客户端这样写

ItemText.LoadFromFile('E:\private\ksxt\Source\Client\Win32\Debug\blank.rtf');

    ItemText.Position := 0;

    ShowMessage('ItemText.Size := ' + IntToStr(ItemText.Size));

    ADoc := ADBXJSONTools.StreamToJSON(ItemText, 0, ItemText.Size);

    AServerMethods_PublicClient.UpLoadFile(ADoc);

相关阅读 >>

Delphi用idhttp.get访问一个网址返回403错误,但用ie浏览器访问正常

Delphi 比较版本号

Delphi开发中子窗口不能置顶的问题

Delphi把流中的字符串转换为utf格式

Delphi android实例-退出程序(xe8+小米2)

Delphi 打开webbrowser的选中文件路径

Delphi formatdatetime 显示日期时间

Delphi removewhitespaces 过滤字符串所有空格

Delphi listview 实现进度条显示

Delphi 进程程序多开调用单元

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...