ApiController
クライアントからの HTTP 要求を継承して処理するコントローラー クラスがあります。
アクションの 1 つは、サーバー上でファイルを生成し、それをクライアントに送信します。
応答が完了したら、ローカル ファイルをクリーンアップする方法を見つけようとしています。
理想的には、これは、応答がクライアントに送信されると発生するイベントを通じて行われます。
そのようなイベントはありますか?または、私が達成しようとしていることの標準パターンはありますか?
[HttpGet]
public HttpResponseMessage GetArchive(Guid id, string outputTypes)
{
//
// Generate the local file
//
var zipPath = GenerateArchive( id, outputTypes );
//
// Send the file to the client using the response
//
var response = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(zipPath, FileMode.Open);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/zip");
response.Content.Headers.ContentLength = new FileInfo(zipPath).Length;
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = Path.GetFileName(zipPath)
};
return response;
}