Delphi XE2 DataSnap REST - 当我尝试下载大文件时“内存不足”

时间:2012-05-04 14:25:44

标签: delphi rest delphi-xe2 datasnap

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

  

"内存不足"

服务器端的错误消息。

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

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

我读了这个question并尝试了一个在使用小文件时运行良好的解决方案。

这是我的简单代码:

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

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

1 个答案:

答案 0 :(得分:2)

您的函数的结果是TStream,尝试增加应用程序的内存量How can I enable my 32-bit Delphi application to use 4gb of memory on 64-bit windows (via Wow64.exe)?

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