我已经编写了一个DataSnap服务器方法,该方法返回一个TStream对象来传输文件。客户端应用程序调用该方法并读取流以下载文件。服务器的方法很简单:Delphi XE2 DataSnap - 通过TStream将JPEG文件从服务器流式传输到客户端
function TServerMethods.DownloadFile(sFilePath: string): TStream;
var
strFileStream: TFileStream;
begin
strFileStream := TFileStream.Create(sFilePath, fmOpenRead);
Result := strFileStream;
end;
它工作正常下载多种文件类型(PDF,GIF,BMP,ZIP,EXE),但下载的JPG文件,当它不工作。在客户端,从方法调用返回的流对象的大小始终为0,并带有JPG。我可以在PC上本地成功传输JPG文件,因此它必须与DataSnap有关。我已经做了一些研究,建议DataSnap在后台将流转换为JSON,并且在涉及到JPG文件时可能会遇到问题 - 任何人都可以证实这一点?在客户端,我使用TDSRESTConnection来调用服务器方法。我意识到我可以在流式传输前压缩JPG文件,但宁可不必这样做。