관리 메뉴

nkdk의 세상

[팁] 자바에서 효율적인 파일 올리기 방법 본문

My Programing/JSP and Servlet

[팁] 자바에서 효율적인 파일 올리기 방법

nkdk 2008. 3. 9. 01:12
간단하게 파일 올리기를 할 수 있는 방법 입니다. 웹에서요.
cos.jar 를 이용하는 건데.. 중복 체크 부터 해서 여러가지 기능들이
있습니다. 물론 jspfileuploader 보다는 기능이 떨어지지만 파일업로더는
메모리를 사용해서 올린다는 만들 때의 허점이 있습니다. 이 소스를 사용하시면
효율적으로 제작 할 수 있겠네요. cos.jar를 꼭 포함시키셔야 합니다.^^

upfile.html

<html>
<body>
<form action="up.jsp" enctype="multipart/form-data" method="post">
이름 : <input type="text" name="userName"> <BR>
파일 : <input type="file" name="upfiles">
<input type="submit" value="Upload">
</form>
</body>
</html>

up.jsp

<%@ page contentType="text/html;charset=euc-kr"
%><%@ page import="com.oreilly.servlet.MultipartRequest,
com.oreilly.servlet.multipart.DefaultFileRenamePolicy,
java.util.*"
%><%
String savePath="../fives/mail/WebContent/upload/"; // 저장할 디렉토리 (절대경로)

int sizeLimit = 5 * 1024 * 1024 ; // 5메가까지 제한 넘어서면 예외발생

try{

MultipartRequest multi=new MultipartRequest(request, savePath, sizeLimit, new DefaultFileRenamePolicy());
String fileName=multi.getFilesystemName("upfiles");

if(fileName == null) { // 파일이 업로드 되지 않았을때
out.print("파일 업로드 되지 않았음");
} else { // 파일이 업로드 되었을때
fileName=new String(fileName.getBytes("8859_1"),"euc-kr"); // 한글인코딩 - 브라우져에 출력
out.print("User Name : " + multi.getParameter("userName") + "<BR>");
out.print("File Name : " + fileName);
} // end if

} catch(Exception e) {
out.print("파일이 저장되지 않았습니다.");
System.out.println("파일이 저장되지 않았습니다. "+e);
}
%>

저 같은 경우는 이걸 활용해서 회원 가입시 사진 넣기나 이벤트 사진 자료 올리기 등으로활용 하였습니다. 뭐 이 정도만 있어도 모든 것이 표현 가능하리라 생각이 드네요. ^^