- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我的应用程序包含一个“网关”DataSnap REST 服务器,它是所有客户端的第一个访问点。根据客户端在请求中传递的用户名(基本身份验证),请求需要重定向到另一个 DataSnap 服务器。我的问题
DSTCPServerTransport.pas 中的“procedure TDSTCPChannel.Open”方法在分配“FChannelInfo”时使用连接用户的私有(private)IP 地址
我很好奇如何处理这个问题;我目前有一个带有 TDSAuthenticationManager 类管理身份验证的 DataSnap 服务器设置。 如果身份验证失败,我可以直接在 TMemo 或类似的表单
我正在使用 Delphi 10.1 Berlin Update 2 Enterprise 和 DataSnap 客户端/服务器 REST 框架。 如果我在不调试的情况下运行应用程序并调用用户无权调用的
我最近开始使用 Delphi 中的 DataSnap 来生成 RESTful Web 服务。在遵循 Marco Cantu 本人和互联网上其他几个人的指导后,我成功地使整个“链条”正常工作。 但是有一
我是一名业余程序员,尝试使用 Delphi XE 构建客户端/服务器应用程序套件。 我偶尔会编写独立应用程序以供个人使用。问题是我对网络/多层一无所知。不过我愿意学习。 我寻找方法来做到这一点,Dat
以下错误发生在我在下面指出的行中。我不明白为什么会出现此错误。 Project ChirpSR.exe raised exception class $C0000005 with message 'a
我希望能够声明具有以下签名的 Data Snap 方法 type TLoginInfo = record Username: string; Password: string;
我在 Delphi XE6 中有一个 datasnap 客户端/服务器 我在客户端的以下服务器方法调用中收到无效的指针操作。 S := ClientModule1.ServerMethods1Clie
我再次遇到这样的情况:我花费了大量的时间来尝试根据我的需要自定义 datasnap 回调示例。我是老派的 OOP 程序员,在我的“工具箱”PODO 风格中有几个非常大的对象层次结构:-) ..并且拥有
与编写DataSnap相比,使用DataSnap有哪些优势?肥皂服务器应用程序。 我知道Datasnap 可以使用TCP/IP 代替soap。 问候 桑迪普 最佳答案 使用 DataSnap,您可以导
一旦您使用正确的参数名称(Delphi Datasnap Server User Authentication 中进行了说明),Datasnap 身份验证就非常简单。下一个问题是在使用 FireDAC
我正在尝试找出“正确”的方法来从 DataSnap 应用程序的服务器建立到数据库的连接。 数据库中的每个(大多数)表都有名为“Updated”和“Created”(这是写入记录时的当前时间戳)的字段(
我试图在 DataSnap 服务器/客户端之间传输一些大流(~1Mb),但无济于事。我试图理解 Jim Tierney ( http://blogs.embarcadero.com/jimtierne
我正在研究将基于 SQL 的胖客户端 Delphi 应用程序迁移到多层瘦客户端,并且一直在考虑在 Delphi 2010 中使用 Datasnap。我已经阅读了 Bob Swart 撰写的白皮书并进一
我有一个 Delphi XE2 DataSnap 服务器(Windows 服务),连接到后端 MS SQL Server 2008(同一服务器框),为 REST 客户端请求提供服务。 一段时间以来,一
我们使用有状态的 DataSnap 服务器来执行某些业务逻辑任务,并提供客户端数据集数据。 如果我们必须更新服务器来修改业务规则,我们将新版本复制到一个新的空文件夹中并注册它(取决于 Delphi 版
我决定从 SOAP 服务器迁移到 DataSnap 服务器和 REST。我已经查看并遵循了几个教程,甚至尝试了 DXE5 演示,但我一直得到相同的结果。问题是我无法将客户端应用程序上的 TSQLCon
我有一个使用 PC1 和 Zlib 过滤器的 tcp/ip Datasnap -XE 服务器 在客户端上,这两个过滤器都是在 DataSnap TSqlConnection 中定义的 当客户端连接到服
我有一个 Datasnap 应用程序(Delphi 7),它使用 TSocketConnectiom 连接到应用程序服务器。如果我的应用程序在打开客户端数据集后长时间保持空闲状态,大多数时候当我想刷新
我是一名优秀的程序员,十分优秀!