ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JSP] Cos.jar를 이용한 MultipartRequest 사용법 (웹 파일입출력)
    Web/JSP 2019. 7. 18. 18:06

    Cos.jar를 이용한 MultipartRequest 사용법 

    파일 입출력을 위한 유용하고 간단한 방법

    cos.jar
    0.05MB

    1. 위 cos.jar파일을 프로젝트 lib폴더에 넣는다.  DynamicProject라면 자동 빌드 추가되고 다른 프로젝트라면 add Build Path를 해준다.

    2. inputFile2.jsp를 작성해 준다. ( 업로드 할 파일 선택화면)

    <body>
    	<h3>입력폼,COS를 사용한 MultipartRequest 객체 사용</h3>
    	<hr>
    	<form action="resultFile2.jsp" method="post"
    		enctype="multipart/form-data" 
    		>
    		이름: <input type="text" name="username"><br>
    		파일:	 <input type="file" name="myfile"><br>
    		<button>전송</button><br>
    	</form>
    </body>

    3. resultFile2jsp를 만들어 준다. (업로드한 파일 다운되는 화면)

    <body>
    <h3>결과페이지(파일업로드)</h3>
    <%
    	String saveDir=application.getRealPath("/upload");
    	int maxSize=5* 1024 * 1024; //업로드 될 파일의 크기제한, 단위:byte
    	MultipartRequest mreq= new MultipartRequest(request,saveDir, maxSize,"utf-8",new DefaultFileRenamePolicy()); 
    	//MultipartRequest호출 ==파일업로드!
    	
    	out.print("파일업로드 성공");
    	String name=mreq.getParameter("username");
    	
    %>
    	<br>
    	이름: <%=name %><br>
    	원본파일명: <%=mreq.getOriginalFileName("myfile") %>
    	저장파일명: <%=mreq.getFilesystemName("myfile") %>
    </body>

    BufferedReader가 없이도 파일을 읽고 쓸 수 있다.

    MultipartRequest호출하는 것 자체가 파일 업로드 하는 것이기 때문이다.

    4. EncFilter.java 클래스 생성(기본 인코딩 설정)

    package util.enc;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class EncFilter implements Filter{
    	private String encType;
    	
    	@Override
    	public void init(FilterConfig config) throws ServletException {
    	   //System.out.println("init()");
    		//config --> web.xml에 정의된 param읽기
    		encType=config.getInitParameter("encType");
    	}
    
    	@Override
    	public void destroy() {	
    	   System.out.println("destroy()");
    	}
    
    	@Override
    	public void doFilter(ServletRequest request, 
    			             ServletResponse response, 
    			             FilterChain chain)
    			throws IOException, ServletException {
    		System.out.println("doFilter()");
    		// encType이 null일경우 nullPointException이 난다.
    		if(encType!=null) {
    			request.setCharacterEncoding(encType);
    		}else {
    			request.setCharacterEncoding("UTF-8");
    		}
    		chain.doFilter(request, response);
    		// 다른 필터 혹은 요청 페이지와의 연결진행
    	}
    
    
    }
    

    5. web.xml에 내용추가

    	<!-- 필터 클래스 등록 -->
    	<filter>
    	<filter-name>enc</filter-name>
    	<filter-class>util.enc.EncFilter</filter-class>
    	
    	<!-- 초기화시 전달할 데이터 -->
    	<init-param>
    		<description>encoding초기값</description>
    		<param-name>encType</param-name>
    		<param-value>UTF-8</param-value>
    	</init-param>
    	</filter>

    클래스 등록, 인코딩 초기값

    반응형

    'Web > JSP' 카테고리의 다른 글

    [JSP] 영화 xml데이터 가져오기  (0) 2019.10.12
    [EL] application.getInitParameter를 EL로 변경하기  (0) 2019.07.18
    [JSP] DBCP란?  (0) 2019.07.16
    [JSP] JSTL 사용법 정리  (0) 2019.07.15
    [JSP] EL사용법 ( Expression Language )  (0) 2019.07.15

    댓글

Designed by Tistory.