我在 Delphi XE2 中创建了一个简单的 DataSnap REST 服务器,并且我有一个返回 TStream 对象来传输文件的方法。这很好用,但是当我尝试下载一个大文件(~2,5GB)时,我得到了一个
"out of memory"
服务器端的错误消息。
我想通过互联网浏览器下载该文件 ( http://localhost:8080/datasnap/rest/TServerMethods1/GetFile )。
rest服务可以返回大文件吗?
我读了这个question并尝试了当我使用小文件时效果很好的解决方案。
这是我的简单代码:
function TServerMethods1.GetFile: TStream;
var
FileStream: TFileStream;
begin
FileStream := TFileStream.Create('d:\file.exe', fmOpenRead);
Result := FileStream;
end;
如何通过互联网浏览器从 REST 服务器下载大文件?
最佳答案
您的函数的结果是一个TStream
,请尝试增加应用程序的内存量 How can I enable my 32-bit Delphi application to use 4gb of memory on 64-bit windows (via Wow64.exe)?
无论如何,您正在加载大量数据。您应该创建一个函数,以更小的 block 形式提供结果。
关于当我尝试下载大文件时,Delphi XE2 DataSnap REST - "Out of memory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10450765/