如何将大文件从RadPHP服务器发送到Delphi XE datasnap服务器

时间:2012-02-27 16:58:11

标签: delphi datasnap radphp

将大型(<50MB)文件从PHP服务器(用RADPHP编写)发送到Delphi Datasnap服务器(Delphi XE)的最佳方法是什么。由于连接问题,我更喜欢使用HTTP(S),但这对我来说是新的领域。

PHP服务器从用户的浏览器接受文件上传确定并可以对其进行编码(base_64)。 但 a)将它放入一个字符串中,这不是处理它的最佳方法 b)DataSnap服务器在接收到字符串

时崩溃,“超出最大行长度”

Datasnap服务器有4个组件 - TDSServer,TDSServerClass,TDSHTTPService和TDSAuthenticationManager。 RADPHP服务器使用DSRestConnection组件。

1 个答案:

答案 0 :(得分:1)

我对Datasnap不太熟悉,但你不能做类似的事情:

  • 客户端将文件上传到RadPHP服务器
  • 现在你想把它发送到Datasnap服务器,你可以做的是发送一个带有链接的命令来下载它:

RadPHP:嘿,新文件给你,这是链接:“http://www.mydomain.com/files/filename.extension”

Datasnap:发送响应,即“OK”,然后开始下载,在服务器端,您可以使用TIdHTTP。

并且实现可能类似于:

procedure DatasnapServerClass.NewFile(const ALink: string);
var
  LIDHTTP: TIdHTTP;
begin
// create instance of TIdHTTP, and call the link to 
// download the file to your desired local folder
// using ALink as the URL
end;