3

我在 Delphi XE2 中创建了一个简单的 DataSnap REST 服务器,并且我有一个方法可以返回一个 TStream 对象来传输文件。这很好用,但是当我尝试下载一个大文件(~2,5GB)时,我得到了一个

“内存不足”

服务器端的错误消息。

我想通过互联网浏览器(http://localhost:8080/datasnap/rest/TServerMethods1/GetFile)下载文件。

休息服务可以返回大文件吗?

我阅读了这个问题并尝试了当我使用小文件时效果很好的解决方案。

这是我的简单代码:

function TServerMethods1.GetFile: TStream;
var
  FileStream: TFileStream;
begin
  FileStream := TFileStream.Create('d:\file.exe', fmOpenRead);
  Result := FileStream;
end;

如何通过 Internet 浏览器从 REST 服务器下载大文件?

4

1 回答 1

2

您的函数的结果是TStream,尝试增加应用程序的内存量如何使我的 32 位 Delphi 应用程序在 64 位窗口上使用 4gb 内存(通过 Wow64.exe)?

无论如何,您正在加载大量数据。您应该创建一个函数,以更小块的形式为您提供结果。

于 2012-05-04T14:43:16.193 回答