3

Delphi XE2 で単純な DataSnap REST サーバーを作成しました。ファイルを転送するために TStream オブジェクトを返すメソッドがあります。これはうまくいきますが、大きなファイル (~2,5GB) をダウンロードしようとすると、

「メモリ不足」

サーバー側のエラーメッセージ。

インターネット ブラウザ ( http://localhost:8080/datasnap/rest/TServerMethods1/GetFile )経由でファイルをダウンロードしたいと思います。

残りのサービスは大きなファイルを返すことができますか?

この質問を読んで、小さなファイルを使用するときにうまく機能する解決策を試しました。

これが私の簡単なコードです:

function TServerMethods1.GetFile: TStream;
var
  FileStream: TFileStream;
begin
  FileStream := TFileStream.Create('d:\file.exe', fmOpenRead);
  Result := FileStream;
end;

インターネット ブラウザ経由で REST サーバーから大きなファイルをダウンロードするにはどうすればよいですか?

4

1 に答える 1

2

関数の結果はTStreamです。アプリケーションのメモリ量を増やしてみてください32 ビット Delphi アプリケーションで 64 ビット ウィンドウで 4 GB のメモリを使用できるようにするにはどうすればよいですか (Wow64.exe 経由)。

とにかく、非常に大量のデータをロードしています。結果をより小さなチャンクで返す関数を作成する必要があります。

于 2012-05-04T14:43:16.193 に答える