0
我使用windows.open('url')
从c#web api下载excel。它正在每个浏览器中下载。但对于iPad和iPhone,该文件得到下载,但我得到我使用下面的代码返回存储在内存流Excel数据在屏幕上ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON iPad和Iphone在.Net应用程序中
ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON
以下错误
HttpResponseMessage result = null;
result = Request.CreateResponse(HttpStatusCode.OK);
result.Content = new StreamContent(mem);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "myexcel.xlsx"
};
return result;
我有看到了PHP中的同一个问题。我试着检查相同的内容,但他提供了错误的内容类型。网址: - ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON on iPad and iPhone Safari
我在其他地方检查了相同的问题,并尝试下面的代码更改。我添加了桌面变量,以便在移动设备上,我可以按照建议添加另一个流。但它不起作用。
if (isDesktop)
{
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
else
{
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
}
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "myexcel.xlsx"
};
return result;
编辑 - 我使用ClosedXml创建Excel。 Github链接关闭XMl问题 - https://github.com/ClosedXML/ClosedXML/issues/279