我已經編寫了一個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文件,但寧可不必這樣做。