Delphi XE2 DataSnap 上传下载文件

--------------------------------上传

服务器端:
function TServerMethods1.upPictureFile(f: TJSONArray): Boolean;
var
  t:TDBXJSONTools;
  s:TMemoryStream;
begin
  result:=false;
  try
  t:=TDBXJSONTools.Create;
  s:=TMemoryStream.Create;

  s:=t.JSONToStream(f) as TMemoryStream;
  s.SaveToFile('D:\Java学习笔记.doc');
  result:=true;
  finally
      freeandnil(t);
      freeandnil(s);
  end;
end;

客户端:
procedure TForm2.Button1Click(Sender: TObject);
var
  proxyServer:TServerMethods1Client;
  t:TDBXJSONTools;
  s:TMemorystream;
  f:TJSONArray;
begin
  if not SQLConnection1.Connected then  SQLConnection1.Connected:=true;
  try
  proxyServer:=TServerMethods1Client.Create(SQLConnection1.DBXConnection);
  t:=TDBXJSONTools.Create;
  s:=TMemoryStream.Create;

  s.LoadFromFile('E:\电子书\java\Java学习笔记.doc');
  //s.Position:=0;

  f:=t.StreamToJSON(s,0,s.Size);

  if proxyServer.upPictureFile(f) then

  showmessage(proxyServer.sayHello);
  finally
      freeandnil(proxyServer);
      freeandnil(t);
      freeandnil(s);
  end;
end;

 

----------------------------下载

服务器端:
function TServerMethods1.downPictureFiel(out f: TJSONArray): Boolean;
var
  t:TDBXJSONTools;
  s:TMemoryStream;
begin
  result:=false;
  try
  t:=TDBXJSONTools.Create;
  s:=TMemoryStream.Create;

  s.LoadFromFile('D:\3.jpg');
  s.Position:=0;

  f:=t.StreamToJSON(s,0,s.Size);

  result:=true;
  finally
    freeandnil(t);
    freeandnil(s);
  end;
end;

客户端:
procedure TForm2.bitbtn2Click(Sender: TObject);
var
  proxy:TServerMethods1Client;
  t:TDBXJSONTools;
  s:TMemoryStream;
  aFile:TJsonArray;
begin
  if not SQLConnection1.Connected then SQLConnection1.Connected:=true;
  proxy:=TServerMethods1Client.Create(SQLConnection1.DBXConnection);

  try
    t:=TDBXJSONTools.Create;
    s:=TMemoryStream.Create;
    aFile:=TJsonArray.Create;

    if proxy.downPictureFiel(aFile) then
      begin
        s:=t.JSONToStream(aFile) as TMemoryStream;
        s.Position:=0;
        s.SaveToFile('D:\down.jpg');
      end;

  finally
    freeandnil(t);
    freeandnil(s);
    freeandnil(aFile);
  end;


  showmessage('下载文件:'+proxy.sayHello);
end;

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值