我正在尝试从WebAPI Rest Service读取并返回文件内容,我在using ...块中返回响应。我收到System.ObjectDisposedException。有人可以帮我这个吗?
using (var fileStream = new FileStream(LocalFilePath, FileMode.Open))
{
response.Content = new StreamContent(fileStream);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "MaxRecords.xls" };
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
return response;
}
答案 0 :(得分:0)
您需要创建一个流推送对象,根据需要在线上生成文件位。我自己建了一个,但我知道这些日子里有一个 - 称为PushStreamContent。这是一个非常简单的示例,does something similar符合您的需求。
问题是,客户端需要关闭流,或者PushStreamContent
需要在写入所有字节时关闭它,但是使用using
块,您将立即关闭它当你发送。
答案 1 :(得分:0)
删除使用块。这不是必需的。 StreamContent
将为您Dispose
。