2012-11-23 2 views
0

서버의 위치에서 업로드 된 파일을 다운로드하려고합니다. 여기에 내가 파일 여기서버에서 파일을 다운로드하는 중 문제가 발생합니다 (저장은 정상적으로 수행되지만 열기는 파일을 열지 않습니다).

Response.ContentType = "image/jpg"; 
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filePath + "\""); 
Response.TransmitFile(Server.MapPath(filePath)); 
Response.End(); 

나는 다양한 확장의 파일이 파일이 내가 현재 image/jpgContentType을 설정하고 TXTJPG/PDF/문서/할 수있다 즉이에게 다운로드 을 사용하고있는 코드입니다.

파일을 제대로 저장하지 못하고 파일이 저장된 실제 위치에서 열 수 있지만 열기가 작동하지 않고 파일이 다운로드되지 않으면 그림과 같은 오류가 발생합니다 . 내가 그것을 친절하게 도와 ContentType

함께 할 수있는 뭔가 생각 유형 jpg의 파일을 열 수 그래서 난 해달라고 할 때

enter image description here enter image description here

이 문제

도있다.

+0

Response.end()를 제거해야합니다. 또한, 어떤 종류의 no-cache 지시어가 있습니까? 그것은 IE에 문제를 일으킬 수 있습니다. – jbl

+0

@jbl 예 IE와 함께 문제가 있습니다. 'no-cache 지시어'로 이해할 수 없습니다. 응답을 끝내십시오.();하지만 그 중 하나도 도움이되지 않았습니다. – Ishan

+1

좋아하는 줄이 없다. Response.CacheControl = "no-cache"; 또는 Response.AddHeader ("Pragma", "no-cache"); 또한, Content-Disposition에서 크기를 추가하면 ... – jbl

답변

0

Content-Typeoctet-stream으로 지정하고 작업했습니다.

0

일반적으로이 문제는 캐싱이 해제 된 Internet Explorer에서 발생합니다. 파일은 임시 폴더에 다운로드 된 다음 열기를 클릭하기 전에 삭제됩니다. IEInternals을 참조하십시오.

결정 방법 : Fiddler을 시작하고 파일 다운로드 응답에서 캐싱 헤더를 찾습니다. 응답이 Cache-Control: no-cache 헤더가 포함되어있는 경우

, 당신이 당신의 코드를 수정하거나 Cache-Control: private 그것을 무시하거나 당신이 핸들러/페이지 파일을 생성/작업을 제외하지 않도록 코드를 변경해야합니다 (때때로 asp.net은있다 문제는 Cache-Control 헤더를 무시하므로 일반적으로 두 번째 방법을 사용합니다.

관련 문제