windows.open('url')
을 사용하여 C# Web API에서 Excel을 다운로드하고 있습니다. 모든 브라우저에서 다운로드되고 있습니다. 그러나 아이 패드 아이폰 들어, 파일 다운로드를 얻을하지만 난 메모리 스트림에 저장되어있는 엑셀 데이터를 반환하려면 다음 코드를 사용하고 화면iPad의 경우 ERROR_MESSAGE_MAIN ERROR_MESSAGE_REASON은 .Net 응용 프로그램의 경우 iphone
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에있는 것과 같은 질문을 보았습니다. 나는 똑같은지 확인해 보았지만 잘못된 콘텐츠 유형을주고있었습니다. URL : - 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;
편집 - Excel 작성시 ClosedXml을 사용하고 있습니다. 닫힌 XMl 문제에 대한 Github 링크 - https://github.com/ClosedXML/ClosedXML/issues/279