【发布时间】:2015-05-29 14:53:08
【问题描述】:
在 web api 方法中,我正在生成一个文件,然后像这样将其流式传输到响应
public async Task<HttpResponseMessage> GetFile() {
FileInfo file = generateFile();
var msg = Request.CreateResponse(HttpStatusCode.OK);
msg.Content = new StreamContent(file.OpenRead());
msg.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
msg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {FileName = file.Name};
return msg;
}
因为这是一个生成的文件,我想在响应完成流式传输后将其删除,但我似乎无法在管道中找到一个挂钩。
我想我可以将文件的引用放在一个静态变量中,并设置一个自定义的 MessageHandler 来从同一个静态变量中提取值并删除。但是,这似乎不可能是正确的,因为使用了静态(当这应该都是每个请求时)并且因为我必须注册一个单独的路由。
我见过this question,但似乎并没有太多有用的回应。
【问题讨论】: