파일 업로드가 끝낫으니 이번엔 파일 다운로드!!
filedownview.jsp
filedown.jsp
- 한글경로,한글이름으로 된 파일도 됩니다.
- 콘솔창으로 파일경로,이름,파일용량이 표시됩니다.
- 버그가 있는데...어떤경우에 에러가 나는지를 모르겟네요. 혹시 알아내시면 댓글좀....
- 한글일 경우 크롬에선 안되는...-0- 아무리 해도 무슨 이유인지를 모르겟네요..
1. 찾아보기로 파일을 선택, 전송을 눌르면 해당 파일을 다운 받을수 있습니다. (뭐....자기 컴터에서 옮기는거죠..;; 단순하게 jsp를 통해서 옮기는거라 여기시면 됩니다.)
2. 시작이 localhost 로 되어 있꾼요.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>파일 다운</title>
</head>
<body>
<form name="down" action="filedown.jsp" method="post" >
<input type=file name="downfilename" size=40>
<input type="button" value="전송" onclick="down.submit()">
</form>
</body>
</html>
-file을 위한 페이지 입니다. 선택파일과 경로를 알기위해서 필요한 페이지 입니다.
filedown.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.io.BufferedOutputStream"%>
<%@ page import="java.io.FileInputStream"%>
<%@ page import="java.io.BufferedInputStream"%>
<%@ page import="java.io.File"%>
<%
request.setCharacterEncoding("EUC-KR");
response.setCharacterEncoding("EUC-KR");
response.setContentType("text/html;charset=EUC-KR");
String filename = request.getParameter("downfilename");
File file = new File(filename);
System.out.println(filename);
System.out.println(file.getAbsoluteFile());
System.out.println(file.length());
byte b[] = new byte[(int)file.length()];
if(file.length() > 0 && file.isFile()){
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename="+ file.getName() + ";");
BufferedInputStream input = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream output = new BufferedOutputStream(response.getOutputStream());
int read = 0;
try{
while((read = input.read(b)) != -1){
output.write(b, 0, read);
}
output.close();
input.close();
out.clear();
out = pageContext.pushBody();
}catch(Exception e){
System.out.println("에러메세지: " + e.getMessage());
}finally{
if(output != null){output.close();}
if(input != null){input.close();}
}
}else{
%>
<script>
alert("파일이 존재 하지 않습니다.");
self.close();
</script>
<%
}
%>
-한글을 위해서 request,response 에 euc-kr 을 설정,
-파라미터로 받은 값으로 파일 객체를 만든다음 byte 배열에 담아서 버퍼를 통해 뿌리는것을 볼수 있습니다.
-파일명이 한글일 경우 깨질수도 있씁니다. (몇줄 더 쓰면 되겟는데..귀찮네요..)
'web > JSP' 카테고리의 다른 글
jsp text box 동적 삭제 에서 버그~ 수정~ (0) | 2010.11.16 |
---|---|
JSP illegal to have multiple occurrences of contenType with different values (2) | 2010.11.14 |
jsp 다중 파일업로드 (4) | 2010.11.11 |
jsp text box 동적 추가 삭제 파라미터로 넘기기! (1) | 2010.11.10 |
jsp cos.jar 기초 파일 업로드 (4) | 2010.11.09 |