2011-11-09 2 views
4

나는 그 안에 저장된 파일을 나열하는 웹 응용 프로그램을 가지고 있습니다.강제로 IE에서 새 창에서 다운로드 열기

각 항목은 클릭하면 나타나는 열기/저장 대화 상자를 강제로 하이퍼 링크가 있습니다. 내가 Word 문서, 말, 가리키는 링크를 클릭 선택하면 사용자가 예상하는대로

지금, '열기'는, 그것의 자신의 창에서 열립니다. 그러나 파일이 HTML 파일이고 '열기'옵션을 선택하면 브라우저에서 페이지가 열리지 만 [올바른] 문서를 선택하는 데 사용한 창에서 열립니다.

그래서, 질문에 : 그것은 새 창에서 문서를 열려면 열기/저장 대화 상자의 '열기'옵션을 강제 할 수 있습니까?

편집 : 문서를 강제로 열리는 하이퍼 링크는 여러 가지 이유로 파일에 대한 포인터가 아닙니다. .NavigateUrl 속성은 자바 스크립트 함수에 대한 호출을 포함,이 기능은 (내용 - 처리 : 첨부 파일) 보안 저장에서 문서를 가져 와서 첨부 파일로 사용자의 브라우저로 제시 적절한 응용 프로그램에 Ajax 요청을하게

추가 편집 : JavaScript 함수는 단순히 Ajax 호출을 페이지로 다시 보냅니다. 의 결과는이 작업이 페이지를 IFrame에 표시하도록하는 것입니다. 다음과 같이이 페이지는 응답 개체에 직접 쓰기 : 이 결과 열기/저장 대화 상자에서 '열기'버튼의 동작을 변경할 수 가능한 경우

Response.ContentType = "application/octet-stream"; 
Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", FileName)); 
Response.AddHeader("Content-Length", String.Format("{0}", length)); 
Response.Flush(); 
Response.Close(); 

나는, 가정, 뭔가 될 것 나는 안으로 코드가 강제로 않습니다.

이 차이를 만드는 경우,이 C#으로 작성된 닷넷 4.0의 응용 프로그램입니다.

나는 좋은 및 새 창을 여는 나쁜에 대해 알고 있지만, 개인 응용 프로그램이며 클라이언트가 원하는거야. 대신 링크의 각을 갖는

+5

무엇 단지'대상 = "_ 빈"을 추가하는 방법에 대한'링크에를? –

+0

ASP.NET? WebForms? MVC? – jrummell

+0

@jrummell WebForms. –

답변

5

는 URL에 (예를 들어 /GetFileContent.aspx?fileid=123)를 각각 연결 지점이와 가지고 ...이 일을 시도 기본 페이지 내에서 JS 함수를 가리 이 페이지는 파일을로드하기 전에 필요한 로직을 수행합니다. ContextType 및 응답 헤더 코드를 그대로 유지하십시오.

새 창을 열고이 같은 보일 것이다 각 링크 :

<a href="/GetFileContent.aspx?file=123" target="_blank">filename.doc</a> 
+0

나는 그것을 줄 것이다. –

+0

점수! 군중은 야생으로 간다. –

+0

스튜어트를 도울 수있어서 기뻤습니다. – kingdango