- 필요한 Jar 파일

commons-fileupload-1.2.2.jar

commons-io-2.4.jar



- 파일업로드 클래스(MultiPart.java)


package com.util;


import java.io.File;

import java.io.UnsupportedEncodingException;

import java.util.List;


import javax.servlet.http.HttpServletRequest;


import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.FileItemFactory;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;



public class MultiPart {

    List items; // 입력 데이타 항목들로 구성된


    /* 생성자 */

    public MultiPart(HttpServletRequest request) throws Exception {

        FileItemFactory factory = new DiskFileItemFactory();

        ServletFileUpload upload = new ServletFileUpload(factory);

        items = upload.parseRequest(request);

    }


    /* 주어진 이름에 해당하는 데이터 값을 리턴하는 메서드 */

    public String getParameter(String fieldName) throws UnsupportedEncodingException {

        for (int i = 0; i < items.size(); i++) {

            FileItem item = (FileItem) items.get(i);

            if (item.getFieldName().equals(fieldName))

                return item.getString("UTF-8");

        }

        return null;

    }


    /* 주어진 이름에 해당하는 업로드 파일의 경로명을 리턴하는 메서드 */

    public String getFilePath(String fieldName) {

        for (int i = 0; i < items.size(); i++) {

            FileItem item = (FileItem)items.get(i);

            if( item.getFieldName().equals(fieldName) )

                return item.getName();

        }

        return null;

    }


    /* 주어진 이름에 해당하는 업로드 파일의 이름을 리턴하는 메서드 */

    public String getFileName(String fieldName) {

        String path = getFilePath(fieldName);

        int index1 = path.lastIndexOf("/");

        int index2 = path.lastIndexOf("\\");

        int index = 0;

        if( index1 > index2 )

            index = index1;

        else

            index = index2;

        if( index < 0 )

            return path;

        else

            return path.substring(index + 1);

    }


    /* 주어진 이름으로 해당하는 업로드 파일을 저장하는 메서드 */

    public void saveFile(String fieldName, String path) throws Exception {

        for (int i = 0; i < items.size(); i++) {

            FileItem item = (FileItem)items.get(i);

                if( item.getFieldName().equals(fieldName) ) {

                    if( !item.isFormField() ) {

                        item.write(new File(path));

                        return;

                    }

                }

        }

    }

}// end - class



- 업로드 예제(FileUpLoad) - JSP 페이지라고 가정


        /* 파일업로드 기능 추가후 파미터 받기 */

        MultiPart multiPart = new MultiPart(request);

        String title = multiPart.getParameter("title");

        String writer = multiPart.getParameter("writer");

        String content = multiPart.getParameter("content");

        String fileName = multiPart.getFileName("file");


※ 입력 폼에서 파일업로드할시 method="post" enctype="multipart/form-data" 해주어야 함.

    이후에 Action.jsp 에서 String 받는거처럼 request.getParameter("ParameterName");

    로 받아서 찍어보면 전부 Null 값으로 나온다.

    위에 처럼 MultiPart 로 받아와야함.


             if( fileName !=null || fileName != "" ){

        /* 작성자 및 날짜로 파일명 중복 예방? */

        String filePath = firstDt + "_" + writer + "_" + fileName;

        newPath = application.getRealPath("/upload/" + filePath);

        /* 파일 업로드 저장 */

        multiPart.saveFile("file", newPath);

        }

        else{

            newPath = "Not File";

        }


※ 파일이름 받아와서 Null 유뮤 체크하그 업로드


'공부 > JAVA_UTILL_CLASS' 카테고리의 다른 글

JSP_[util.CookieBox]  (0) 2012.07.24

package util;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

public class CookieBox {

    private Map<String, Cookie> cookieMap = new java.util.HashMap<String, Cookie>();
   
    public CookieBox(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
            if ( cookies != null ) {
                for ( int i = 0; cookies.length > i; i++ ) {
                    cookieMap.put(cookies[i].getName(), cookies[i]);
                }
            }
    }
   
    public static Cookie createCookie(String name, String value) throws IOException {
        return new Cookie(name, URLEncoder.encode(value, "euc-kr") );
    }
   
    public static Cookie createCookie(String name, String value, String path, int maxAge) throws IOException {
       
        Cookie cookie = new Cookie(name, URLEncoder.encode(value, "euc-kr") );
        cookie.setPath(path);
        cookie.setMaxAge(maxAge);
        return cookie;
    }
   
    public static Cookie createCookie(String name, String value, String domain, String path, int maxAge) throws IOException {
       
        Cookie cookie= new Cookie(name, URLEncoder.encode(value, "euc-kr") );
        cookie.setDomain(domain);
        cookie.setPath(path);
        cookie.setMaxAge(maxAge);
        return cookie;
    }
   
    public Cookie getCookie(String name) {
       
        return cookieMap.get(name);
    }
   
    public String getValue(String name) throws IOException {
       
        return URLDecoder.decode(cookieMap.get(name).getValue(), "euc-kr");
    }
   
    public boolean exists(String name) {
       
        return cookieMap.get(name) != null;
    }
}

'공부 > JAVA_UTILL_CLASS' 카테고리의 다른 글

UTILL_[파일업로드]  (0) 2012.11.19

+ Recent posts