본문 바로가기
카테고리 없음

JSL(22) - 파일업로드

by SeleniumBindingProtein 2022. 1. 29.
728x90
반응형

1. 라이브러리 추가하기
    1) Apache Commons FileUpload, Apache Commons IO
    2) com.oreilly.servlet 라이브러리 

2. JSP에서 파일 업로드
    1) 파일 업로드 관련 API
        - DiskFileItemFactory
            - setRepository() : 파일을 저장할 디렉토리 설정함.
            - setSizeThreadhold() : 최대 업로드 가능 파일 크기 설정함.
        - ServletFileUpload
            - parseRequest() : 전송된 매개변수를 List객체로 얻음.
            - getItemIterator() : 전송된 매개변수를 Iterator 타입으로 얻음.   

3. 순서
    1) 라이브러리 추가 
    2) 파일 업로드 
        - 화면 폼 작성
        - 데이터베이스 테이블,시퀀스 생성
        - DTO, DAO 작성
        - 연동 완성
    3) 파일 다운로드      

4. 화면 폼 작성
    1) 일반적인 폼과 조금 다른 설정.
        - method="post"
        - enctype 속성
            - "application/x-www-form-urlencoded"   
                - 기본값
                - 모든 문자를 서버로 전송하기 전에 인코딩함
            - "multipart/form-data"
                - 모든 문자를 인코딩하지 않음.
                - <form> 태그를 통해 파일을 서버로 전송할때 주로 사용함.
            - "text/plain"
                - 공백문자(space)만 "+"기호로 변환하고, 나머지 문자는 인코딩하지 않음.

5. 데이터베이스 테이블,시퀀스 생성
    1) 테이블 정의서
        컬럼명           데이터타입           null 허용       키                 설명
        --------------------------------------------------------------------------------
        idx             number                     N             PK              일련번호, 기본키
        name            varchar2(50)        N                                 작성자
        title           varchar2(200)          N                                 제목
        category        varchar2(30)                                         카테고리
        ofile           varchar2(100)         N                                원본파일이름
        sfile           varchar2(30)           N                                 저장된 파일이름
        postdate        date                     N                                등록된 날짜
        --------------------------------------------------------------------------------

6. DTO, DAO 클래스 생성

7. 파일 업로드 처리 
    1)  MultipartRequest 객체 생성
        MultipartRequest mr = new MultipartRequest
                    (HttpServletRequest request,
                    String saveDirectory,       // 파일이 저장될 물리적인 경로
                    int maxPostSize,            // 업로될 파일의 최대 용량
                    String encoding)            // 인코딩 방식 
    2) 새로운 파일명 생성 ("업로드일시.확장자")                    
    3) 파일명 변경 
    4) 다른 폼값 처리 

728x90
반응형

댓글