2012-06-12 7 views
1

나는 pdf/txt/.xls 또는 다운로드 옵션을 클릭하면 모든 파일을 다운로드해야합니다. 제 경우에는 배열 목록에 특정 값이 있고 JSP로 표시 중입니다. 목록에 존재 (이름 목록) 내가 (이름 목록)를 반복 할 때 IAMURL에서 파일을 다운로드하는 방법은 무엇입니까? (브라우저에서 열지 않기)

name=rahul 
url=files/en/software/rahul.txt 
name=roshan 
url=files/en/software/roshan.pdf 

을 갖는 JSP 위의 표시, 내 JSP 사용자 이름을 많이 갖는 제 JSP 스피 너무

<td valign="top">${namelist.name}</td> 

<td colspan="2" valign="top">       
<a href="${namelist.url}"/> 
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/> 
</td> 

및 해당 파일을 URL에 표시합니다. 파일의 URL http://www.xxx.com/files/en/software/roshan.pdf

와 브라우저에서 여는 다운로드 클릭에 하지만이 팝 업으로 열려는 개방/옵션으로 저장에 대한 사용자 요청합니다. 이 URL을 컨트롤러에 전달하면 /files/en/software/roshan.pdf 값만 표시됩니다. 나는 그들이 사용하기를 제안하는 곳마다 똑같이 검색했다. response.setHeader ("Content-Disposition", "attachment; filename ="+ name);

그래서 내가 컨트롤러라는 이름의 다운로드를 만든 및 다운로드 클릭에 난 내 컨트롤러에서 다음이

<a href='<c:url value="/download.sp?name=${namelist.name}&downloadUrl=${namelist.url}"/>'> 
<img src="/images/download.gif" alt="Download" border="0" align="right"></a><br/><br/> 

같은 URL을 매핑. I donno 다운로드 클릭에 파일이 같은 파일이어야합니다 있도록 정확히 무엇을, 나는 같은 이름 이군과 위의 여는 팝업 컨트롤러 등을 포함 할이

public ModelAndView download(HttpServletRequest request, HttpServletResponse response) throws Exception { 
     cat.debug(" download: begin"); 
     ModelAndView modelView = super.handleRequest(request, response); 
     String url = request.getParameter("downloadUrl"); 
     String name = request.getParameter("name"); 
     response.setHeader("Content-Disposition", "attachment;filename="+name); 
     String viewName = "swl_download"; 
     modelView.setViewName(viewName); 
     return modelView; 
} 

처럼 쓴 (위의 컨트롤러에는 무엇을 포함/변경해야합니까?) 이 문제를 해결하는 데 협조 해주십시오. 저를 도와 주셔서 진심으로 감사드립니다.

+0

다운로드 파일 이름이 swl_download로 표시됩니까? –

+0

[File-download-servlet] 링크 (http://www.coderanch.com/t/366358/Servlets/java/File-download-servlet)를보십시오. 당신은 서블릿 자체로 할 수있다. spring mvc를 사용할 필요가 없다. – Elbek

+0

@subirkumarsao : 그 코드는 예를 들어 파일 이름을 rahul.txt로 다운로드하지만, rahul과 관련된 URL에서 파일을 가져 오는 방법은 무엇입니까? 도와주세요. – Rahul

답변

1

sql_download 뷰가 수행중인 작업을 확인해야합니다.

일반적으로보기 자체에서 콘텐츠 처리를 설정합니다. 브라우저가 문서를로드 할 수있는 올바른 응용 프로그램을 선택할 수있는 콘텐츠 형식도 중요하다

response.setHeader("Content-disposition", "attachment; filename="+fileName); response.setContentType("application/vnd.ms-excel"); OutputStream out = response.getOutputStream(); helperClass.exportDataToExcel(data, out);

: 그래서 내 사용자 지정 추상보기의 된 구현은 같을 것입니다.

이러한 헤더는 브라우저에 대한 제안 일 뿐이며 브라우저는 자유롭게 해석 할 수 있습니다. 따라서 모든 브라우저에 강제로 "열기 또는 저장"대화 상자를 표시 할 수 없습니다.

희망이 도움이됩니다.

관련 문제