본문 바로가기
개발/자바 Java

[자바 Java] 파일 업로드

by 언제나초심. 2010. 11. 5.
반응형

필요한 라이브러리

commons-fileupload-1.2.jar
commons-io-1.3.1.jar
cos.jar


 * 위와 같은 라이브러리 3개가 필요하다. 중요한 것은 어플리케이션 쪽이 아닌, 톰캣(WAS) 쪽에 있어야 한다. 이유는 확인중입니다. WAS 딴에 넣지 않으면 잘 안되니 유의하시기 바랍니다. ㅡㅜ


1. 폼에서 enctype 형식이 멀티파트 형식이어야 한다.


<form enctype ="multipart/form-data" >
     <input type="file" name="photo_file" id="photo_file" value=""/>
</form>


2. 파라미터를 받는 위치에서. 자바소스 추가.


//===================================================
//파일업로드 기능 구현
//---------------------------------------------------
String saveDir = "photo"; //사용할 폴더명
String tempDir = "photo_temp"; //사용할 임시폴더명
int maxUploadSize = 2 * 1024 * 1024; //파일업로드 제한사이즈


//---------------------------------------------------
String realPath = request.getRealPath("/"); //현재 폴더 위치 가져옴.
String savePath = realPath + saveDir; //각각 위치를 붙여주고
String tempPath = realPath + tempDir; //각각 위치를 붙여주고


//---------------------------------------------------
//파라미터 받아오는 형식을 Request 에서 MultipartRequest 로 변경
MultipartRequest multi = null;
multi = new MultipartRequest(request, tempPath, maxUploadSize);


//---------------------------------------------------
if(multi.getFile("photo_file") != null){ //업로드된 파일이 있을 시
    StringTokenizer oriFileName = new StringTokenizer(multi.getFilesystemName("photo_file"), ".");
    String[] tmpFileName = new String[2];
    tmpFileName[0] = oriFileName.nextToken();
    tmpFileName[1] = oriFileName.nextToken();

    File orif = multi.getFile("photo_file");
    File newf = new File(savePath,tmpFileName[0]+"."+tmpFileName[1]);

    //DB 에 넣을 값(PATH 와 YN)
    String photo_url = saveDir + "/" + tmpFileName[0]+"."+tmpFileName[1]; //파일 주소[디비로 넘길 값]
    String photo_yn = "Y";

    //DB 에 넣을 값(PATH 와 YN)
    orif.renameTo(newf); //파일 생성
    out.println("<br/> Successfully<br/>"); //완료시

} else {
    out.println("<br/> Return : Attach File is Null <br/>"); //업로드된 파일이 없을 경우
}

 *. lib 를 추가하는 부분에서 유의하시기 바랍니다. 그리고 위와 같은 방식의 소스를 검색해보시면 쉽게 찾으실수 있습니다. 다른 방법도 있는 것으로 보이는데, 중요한 점은 파일첨부를 하려면 enctype 이 Multipart~ 방식이어야 한다는 것이네요.


반응형

'개발 > 자바 Java' 카테고리의 다른 글

JAVA_변수 형 변환  (0) 2011.01.31
[JSP] 한글 파라미터 처리  (0) 2011.01.04
JAVA_JDK 환경변수 셋팅  (0) 2010.11.25
[자바 Java] 라이브러리 추가 하는 방법  (0) 2010.11.24
[JSP] REQUEST/RESPONSE Header/Agent 정보 확인하기 예제  (0) 2010.11.02
[Java] 오늘 일자 구하기  (0) 2010.10.26
자바 큰 따옴표  (0) 2010.10.26
[JSP] jsp include  (0) 2010.10.15