2013-04-11 6 views
0

사용자가 정규 콘텐츠 (몇 메가 바이트 이하)를 사용하여 Excel 파일을 다운로드 할 수있는 응용 프로그램을 개발 중입니다.IE8 일부 페이지에서 다운로드 파일이 작동하지 않습니다.

IE9에서는 파일이 완벽하게 다운로드되지만 IE8에서는 다운로드를 허용하는 페이지 중 일부가 작동하지 않습니다.

새 페이지는 다운로드 막대를 표시하지 않고 즉시 열리고 닫힙니다.

캐시 제어 헤더가 개인으로 설정됩니다.

모든 IE8 추가 기능이 비활성화되었습니다.

나는 파일을 저장하고 하나가 작동하지 않는 그들이

(떨어져 경로에서) 정확히 일치 내가 그나마 알 수 있습니까 페이지 모두에 대한 서버의 응답을 일치 한

왜 어떤 경우에 파일은 완벽하게 다운로드되고 다른 사람에게는 다운로드되지 않습니다. 여기

내가 파일을 다운로드하는 데 사용하는 서버 측 코드 :

protected void GetExportedFile() 
{ 
    string filename = Form("filename"); 

    if (string.IsNullOrEmpty(filename)) 
    { 
     Logger.Instance.Write("GetExportedFile is missing the parameter filename"); 
     Response.Redirect("ErrorPage.aspx"); 
    } 

    string filePath = Context.Server.MapPath("****/****/" + filename); 

    Response.ClearHeaders(); 
    Response.ClearContent(); 
    SetContentType(ContentType.Excel); 
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", filename)); 
    Response.WriteFile(filePath); 

    Response.Flush(); 

    try 
    { 
     File.Delete(filePath); 
    } 
    catch (Exception ex) 
    { 
     Logger.Instance.Write(
      "GetExportedFile failed to delete the file '" + filePath + 
      "', Error: " + ex.ToString(), "Error"); 
    } 

    try 
    { 
     Response.End(); 
    } 
    catch (ThreadAbortException ex) 
    { 
     //Don't add anything here. 
     //because if you write here in Response.Write, 
     //that text also will be added to your text file. 
    } 
} 

나는이 관련되어 있다고 생각 해달라고하지만, 언급 할 필요를 그 이전에 IE8에서 작동하지 않는 다운로드 나는에 일부 Ajax 호출을 수행하여 엑셀 생성이 완료되었는지 알리는 반면, 작동하는 페이지에서는이 절차를 수행하지 않습니다.

내 응용 프로그램이 응용 프로그램 방화벽 (F5) 뒤에 있으며, 비활성화하면 IE8에서 모든 다운로드가 작동한다고 추가하고 싶습니다. 문제는 응답에 변경 사항이 표시되지 않는 것입니다.

감사합니다.

+0

파일 이름 변수에 파일 확장자가 포함되어 있습니까? –

+0

예 파일 확장명은 xlsx입니다. – AMember

답변

1

이 게시물을 본 사용자는이 문제의 원인을 발견했습니다. IE8에는 스크립트 다운로드에서 직접 파일 다운로드를 호출 할 수 없도록하는 보안 정책이 있습니다.

파일 만들기 상태를 쿼리하는 서버에 대한 일련의 아약스 호출을 호출 했으므로 파일 다운로드 준비가 완료되면 IE에서이를 취소했습니다.

IE8 정책을 재정의하려면 파일 작성이 완료된 후 클라이언트에 파일 링크가있는 팝업 창이 나타나 링크를 클릭하면 파일이 성공적으로 다운로드되었습니다.

나는 누군가가 도움이되기를 바랍니다.