문제

다음 코드는 최신 서비스 팩이 설치된 경우 IE7에서 올바르게 실행되지 않습니다.

System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", "attachment;filename=Contacts.xls");
response.ContentType = "application/octet-stream";

System.Text.UnicodeEncoding Encoding = new System.Text.UnicodeEncoding();

byte[] unicodeBytes = {255,254};
int length = 2 + Encoding.GetByteCount(_exportContent); // _exportContent is string.
response.AddHeader("Content-Length", length.ToString());
response.OutputStream.Write(unicodeBytes, 0, 2);
unicodeBytes = Encoding.GetBytes(_exportContent);
response.OutputStream.Write(unicodeBytes, 2, unicodeBytes.Length);
response.End();

js (wind

이상한 점은 창이 튀어 나와 파일 대화 상자를로드/표시하려고 시도한 다음 팝업 창이 차단 된 것처럼 소리가 차단된다는 것입니다 (팝업 차단기가 비활성화되었지만).

추가 정보:
- 동작은 XP와 W2K3 (다른 것이 설치되지 않은 실제 웹 서버이지만 IE7 & FW 3.5 SP1 및 최신 서비스 팩)에서 발생합니다. 동일한 코드는 FW 2.0에서 잘 작동합니다. Firefox는 파일을 표시하는 데 아무런 문제가 없습니다. 대화.

다른 사람이 같은 문제를 겪고 IE7에서 일하는 것을 얻기위한 솔루션을 제공 할 수 있다면 궁금합니다.

건배,
디미

도움이 되었습니까?

해결책

IE에게 말하는 헤더를 추가하십시오 명시 적으로 파일을 캐시합니다. IE는 파일이 캐시 파일로 전송되면 파일을 올바르게 저장할 수없는 버그를 알고 있습니다.

다른 팁

나는 같은 문제를 겪었고 한 시간 동안 완전히 좌절했습니다. 평소와 같이 Microsoft IE 브라우저는 모든 두통의 근본입니다. 모든 것이 다른 브라우저에서 잘 작동했습니다. 솔루션은 간단합니다. 사용자는 '인터넷 옵션'> '보안'탭> '인터넷'및/또는 '로컬 인트라넷'으로 이동하여 IE7 설정을 조정해야합니다. 버튼을 클릭하여 보안 설정을 조정합니다. , '사용자 지정 수준 ...'

'다운로드'노드 '> 파일 다운로드에 대한 자동 프롬프트'> '활성화'확인

그것은 내 사용자를 위해 그것을 고쳤습니다.

도움이되기를 바랍니다.

우리의 인트라넷 에이 문제가 있었는데, 다운로드를위한 자동 프롬프트는 나에게 효과가 없었지만 (이미 선택되었습니다) ...

도구 -> 인터넷 옵션

보안 탭에서 '로컬 인트라넷'을 선택한 다음 사이트를 클릭하십시오.

고급 클릭

“http://your.url.com”을 입력하고 추가를 클릭하십시오

Close-> OK-> OK를 클릭하십시오

이것이 당신에게도 효과가 있기를 바랍니다.)

나는 여전히 대화 상자를 사라지지 않을 수 없습니다. 이는 응용 프로그램이 [WebMethod]에 액세스하여 정보를 수집하여 결과를 Excel로 다운로드하려는 페이지로 전달할 때 발생합니다.

            Response.Clear();

            Response.ClearHeaders();
            Response.ClearContent();

            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Disposition", "attachment; filename=\"" + fileNameToUse + "\"");
             Response.CacheControl = "Public";

            Response.Write(output);
            Response.Flush();
            Response.Close();

이것은 IP 주소 (999.11.1.111 default.aspx ....)를 사용하여 웹 SIT에 액세스 할 때만 발생하는 것 같습니다. loacalhost default.aspx를 통해 액세스 할 때 작동합니다

보안 이이 문제를 일으키는 지 테스트하려면 대상을 _Self로 설정하십시오. IE 위에있는 경고 막대가 나타나야합니다. 이것이 원인이라면 IE 보안을 확인하십시오. 특히 다운로드 부품의 프롬프트입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top