⁂ JSP/: 기본 익히기

[JSP] #10 파일 업로드

김갱환 2022. 10. 20. 13:13
1. 파일 전송 원리
 
- 폼에 enctype='multipart/form-data'가 추가
- enctype이 폼에 추가가 되면 기본적으로 request에 값을 담을수 없다.
- 업로드된 파일저장
   . 데이터베이스에는 저장시키지 않는다
   . DB에는 업로드 된 파일명과 확장명, 파일크기정도만 저장을 시키고, 
     실제 파일은 웹서버의 하드디스크에 저장을 시킨다.
 
- 전송된 File 저장(jakarta FileUpload API, 파일 업로드)
 
- 파일 전송 원리
 
   파일 ---> Web Browser ---> 전송 ---> Tomcat ---> 디스크에 저장 (파일)
                                               ---> DB에 저장(파일관련 속성)
 
 
 
2. 파일업로드 관련 라이브러리 생성에 필요한 파일
 
      commons-fileupload-1.3.1-bin.zip
 
      commons-io-2.4-bin.zip
 
     압축 해제후 library jar 파일 
     commons-fileupload-1.2.1.jar 와 commons-io-2.4.jar 을
     WEB-INF/lib 폴더에 복사
 
 
 
 
3. FileItem Interface가 제공하는 메소드 내역
 
  . boolean isFormField(): 일반적인 입력 파라미터인 경우 true를 리턴 합니다.
  . String getFieldName(): 파라미터의 이름을 구합니다.
  . String getString()   : 기본 캐릭터셋을 이용하여 파라미터의 값을 구합니다.
  . String getString(String encoding): 지정한 인코딩을 이용하여 파라미터값을 구함
  . String getName()     : 업로한 파일의 전체 경로를 포함한 이름을 구합니다.
  . long getSize()       : 업로드한 파일의 크기를 구합니다.
  . void write(File file): 업로드한 파일을 file이 나타내는 파일로 저장합니다.
  . InputStream getInputStream(): 업로드한 파일을 읽어오는 입력 스트림을 리턴합니다.
  . byte[] get()         : 업로드한 파일을 byte 배열로 구합니다.
  . boolean isInMemory() : 업로드한 파일이 임시 디렉토리에 저장된 상태인 경우 
                           true를 리턴하고, 임시 데렉토리에 저장된 경우 false를 리턴합니다.
  . void delete()        : 파일과 관련된 자원을 제거합니다.메모리가 사용되고 
                           있을 경우 메모리를 반환하고, 임시 디렉토리에 있는 파일을 삭제합니다.
 
 
 
 
[02] cos.jar 파일업로드 라이브러리 무료 배포
 
1. cos.jar
 
  -> http://www.servlets.com  -> com.oreilly.servlet  -> cos-26Dec2008.zip 압축 해제
  -> setup/cos-26Dec2008/lib/cos.jar 복사
  -> /src/main/webapp/WEB-INF/lib/cos.jar 붙여넣기
 
  - cos.jar API문서 참조: setup/cos-26Dec2008/doc/index.html 
 
 
 
2. 파일 업로드가 성공했는지 확인
 
  D:\java0123\workspace \.metadata
                        \.plugins
                        \org.eclipse.wst.server.core
                        \tmp0
                        \wtpwebapps
                        \myweb
                        \storage 폴더에 파일이 있으면 업로드 성공