【发布时间】:2013-03-23 11:37:38
【问题描述】:
我将文档存储在数据库中,并有一个用于下载文档的 api。
docx 和 xlsx 的下载在 IE9、Chrome 和 FF 中可以正常下载,但在真正的 IE8 中会失败。(IE 9 在 IE8 模式下也可以)
我得到的错误信息如下:
无法从idler2下载393。
无法打开此 Internet 站点。请求的站点是 不可用或找不到。请稍后再试。
带有以下响应标头: HTTP/1.1 200 正常 缓存控制:无缓存 Pragma: 无缓存
Content-Length: 10255
Content-Type: application/octet-stream
Expires: -1
Server: Microsoft-IIS/7.5
Content-Disposition: attachment; filename=document.docx
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Sat, 23 Mar 2013 11:30:41 GMT
这是我的api方法:
public HttpResponseMessage GetDocumentContent(int id)
{
Document document = Repository.StorageFor<Client>().GetDocument(id);
HttpResponseMessage response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
response.Content = new ByteArrayContent(document.GetBuffer());
response.Content.Headers.ContentLength = document.GetBuffer().Length;
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
//FileName = document.GetFileName(),
FileName = "document.docx",
DispositionType = "attachment"
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
return response;
}
我在内容配置和内容标题上尝试了很多变体,但都没有运气..
【问题讨论】:
标签: c# asp.net-mvc-4