-
[JSP] Cos.jar를 이용한 MultipartRequest 사용법 (웹 파일입출력)Web/JSP 2019. 7. 18. 18:06
Cos.jar를 이용한 MultipartRequest 사용법
파일 입출력을 위한 유용하고 간단한 방법
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