2

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

PHP 服务器接受用户浏览器上传的文件 OK 并可以对其进行编码(base_64)。但是a)将它放入一个字符串中,这不是处理它的最佳方式b)DataSnap服务器在接收到字符串时崩溃,并出现“超过最大行长”

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

4

1 回答 1

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;
于 2012-02-27T17:09:32.603 回答