2

MVC アクション メソッドから FilePathResult を返すと、次のいずれかが発生します (重要な場合、結果が指すファイルが非常に大きいと仮定します)。

  1. ファイル全体がサーバーのメモリにロードされ、クライアントに送信されます。
  2. ファイルは何らかの方法でクライアントにストリーミングされ、サーバーのメモリに完全に読み込まれることはありません。
  3. 他の何か。

答えが 1 の場合、別のタイプの結果を返すことで、代わりに 2 のようにファイルを送信することは可能ですか?

4

1 に答える 1

2

UPDATE: response.TransmitFileFilePathResultを使用します。これは、「指定されたファイルをメモリにバッファリングせずに、HTTP 応答出力ストリームに直接書き込みます。」MVC のソース コードは次のとおりです。

FileStreamResultクラスを使用してデータをストリームバックできます。

 return new FileStreamResult(stream, "application/pdf")
 {
     result.FileDownloadName = "somefile.pdf";
 };

または、次のようにファイルにリダイレクトできます。

 return Redirect("somefile.pdf");
于 2013-05-30T21:01:22.830 に答える