티스토리 뷰
728x90
바로 아래 파일 다운로드 도우미 내용을 참고해서 사용해도
계속 깨져서 결국 보내는 쪽에서도 인코딩을 해주니까 안깨지고 잘 나온다
왜 utf-8로 인코딩해서 보냈는데 8859_1로 디코딩 해야 하는지는 모르겠다
어쨌든 안깨지고 잘된다..
계속 깨져서 결국 보내는 쪽에서도 인코딩을 해주니까 안깨지고 잘 나온다
[보내는 JSP]
<a href="/fileDownload.jsp?file_path=<%=boardFileData[i][4]%>
&file_name=<%=java.net.URLEncoder.encode(boardFileData[i][3], "UTF-8")%>
&down_name=<%=java.net.URLEncoder.encode(boardFileData[i][2], "UTF-8")%>">
다운로드
</a>
&down_name=<%=java.net.URLEncoder.encode(boardFileData[i][2], "UTF-8")%>">
다운로드
</a>
[받는 JSP] - fileDownload.jsp
<%@ page language="java" import="java.io.*" %>
<%
if(request.getParameter("down_name") == null || request.getParameter("file_name") == null) return ;
String downloadName = java.net.URLDecoder.decode(request.getParameter("down_name"), "8859_1");
String fileName = java.net.URLDecoder.decode(request.getParameter("file_name"), "8859_1");
String filePath = request.getRealPath(request.getParameter("file_path"));
File f = new File( filePath, fileName );
response.setContentType("application/octet-stream; name=" + downloadName);
if (request.getHeader("User-Agent").indexOf("MSIE 5.5") > -1){
response.setHeader("Content-Disposition", "filename=" + downloadName + ";");
}else {
response.setHeader("Content-Type", "application/octet-stream; charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(downloadName, "UTF-8") + ";");
}
response.setHeader("Content-Transfer-Encoding", "binary");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
response.setContentLength((int)f.length());
byte b[] = new byte[4 * 1024]; // 버퍼 4kb
if(f.isFile()){
BufferedInputStream fin = new BufferedInputStream( new FileInputStream( f ) );
BufferedOutputStream outs = new BufferedOutputStream( response.getOutputStream() );
int read = 0;
try{
while((read = fin.read(b)) != -1 ){
outs.write(b, 0, read);
}
}catch(Exception e){
e.printStackTrace();
try { outs.flush(); } catch ( Exception ei ){ }
}finally{
if(fin != null) try{ fin.close(); } catch ( Exception ei ){ }
if(outs != null) try{ outs.close(); } catch ( Exception ei ){ }
}
}
return;
%>
왜 utf-8로 인코딩해서 보냈는데 8859_1로 디코딩 해야 하는지는 모르겠다
어쨌든 안깨지고 잘된다..
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP]엑셀 excel 다운로드 파일 만들기 (한글깨짐, 숫자 포함) (3) | 2012.01.31 |
---|---|
로컬 컴퓨터에서 일반 사이트 주소 입력으로 프로젝트 접속하기 (0) | 2012.01.04 |
파일 다운로드 도우미 (0) | 2012.01.04 |
[JSP] MVC 게시판 만들기 3(수정, 삭제) (2) | 2011.10.15 |
[JSP] JSP 기초(스크립틀릿, 지시어, 표현식) (0) | 2011.09.12 |
TAG
- 스트럿츠
- 구매 가이드
- 함수
- 동양인
- 특수문자
- 오류
- jstl
- 데이터베이스
- 기본
- 파이썬
- 시각 차이
- JSP
- mvc
- 코멧
- 여성가족부
- ibatis
- 주피터 노트북
- struts
- JavaScript
- 테이블
- MacOS
- EL
- window
- 서양인
- Android
- 랜덤
- 스프링
- 페이지 이동
- 안드로이드
- 자바스크립트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
- Total
- Today
- Yesterday