본문 바로가기
Java+Jsp

jsp file upload (MultipartRequest )

by xfree302 2010. 2. 18.
반응형


MultipartRequest 를 이용하여 파일 업로드를 구현한다.

MultipartRequest 를 이용하기 위해서는 http://www.servlets.com/cos/index.html 에서
Class Multipart Request 를 클릭해 다운 받는다. (파일첨부)
다운 받은 파일의 압축을 풀고 lib폴더 안에 cos.jar 를 톰캣 설치 폴더의  lib 폴더 안에 추가한다.
그리고 현재 작업중인 프로그램의 WebContent/Web_INF/lib 아래에도 추가한다.

그리고 프로젝터를 새로 고침하면 자동으로 적용이 된다.


fileUpload.jsp
------------------------------------------------------------------------------
<%@ java.util.*"%>      
 <%@ page import="com.oreilly.servlet.MultipartRequest"
 <%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
 String path="c:/file";
 int fileSize= 5 * 1024 * 1024 ; 
 String message = null;
   
 try{
    MultipartRequest multi=new MultipartRequest(request, path, fileSize);
     Enumeration formNames=multi.getFileNames(); 
    String formName=(String)formNames.nextElement();
    String fileName=multi.getFilesystemName(formName);
    if(fileName != null) {  
        message = fileName;
       
    } else {
        message = "fail to upload file";
    }
 } catch(Exception e) {
     message = "fail to upload file";
    e.printStackTrace();
 }
     response.sendRedirect("mainForm.jsp?value="+message);
------------------------------------------------------------------------------

mainForm.jsp
------------------------------------------------------------------------------
<form name="fileform" action="fileUpload.jsp" enctype="multipart/form-data" method="post">
<table border="0" cellpadding="0" cellspacing="10">
<tr>
    <td nowrap class="FTBHTD2"> 파일 업로드 </td>
    <td class="LTBMTR1">
    <input type="file" name="upfile">
    <input type="submit" value="upload"></td>
</tr>
<tr><td><% if(fileName == null) { %> * 5MB 미만의 파일만 첨부 가능합니다.
<% } else { %> "<%=fileName %>" 가  업로드 되었습니다
<input type="button" value="태그 업데이트 하기"
onclick="formSubmitToURL(fileform, 'updateGroupTag.jsp?filename=<%=fileName%>')">
<% } %></td> </tr>
------------------------------------------------------------------------------

mainForm.jsp 에서 input type="file"을 선언하고 파일을 선택한 뒤에 "upload" submit 버튼을 누르면 fileUpload.jsp 파일을 실행한다. String path 는 업로드 된 파일이 저장될 절대 경로를 적으면 된다.
int fileSize 는 업로드 파일 최대 크기이며 위에는 5MB 까지 제한을 두고 있다. MultipartRequest 클래스를 이용하여 객체를 생성하여 파일 업로드를 구현한다.
이때  MultipartRequest multi=new MultipartRequest(request, path, fileSize); 여기에서 MultipartRequest multi=new MultipartRequest(request, path, fileSize,new DefaultFileRenamePolicy()) 로 네번째 파라미터를 추가할 경우 파일 업로드가 될때 같은 파일 이름이 있을 경우 file.txt file1.txt file2.txt 로 변경되어 업로드 된다.
MultipartRequest multi=new MultipartRequest(request, path, fileSize,"euc-kr", new DefaultFileRenamePolicy()) 이렇게 "euc-kr" 을 추가할 경우 한글 파일 이름이 깨지지 않는다.

반응형

'Java+Jsp' 카테고리의 다른 글

아파치 톰캣 연동  (0) 2010.04.13
jsp ftp (Commons net)  (0) 2010.02.18
java 디컴파일러 JAD, JADClipse  (0) 2009.11.13
xml 읽어오기  (0) 2009.11.02
엑셀 저장하기  (0) 2009.10.29