我在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服务器下载大文件?
答案 0 :(得分:2)
您的函数的结果是TStream
,尝试增加应用程序的内存量How can I enable my 32-bit Delphi application to use 4gb of memory on 64-bit windows (via Wow64.exe)?
无论如何,您正在加载大量数据。您应该创建一个函数,以更小的块为您提供结果。