1. 파일 전송 원리
- 폼에 enctype='multipart/form-data'가 추가
- enctype이 폼에 추가가 되면 기본적으로 request에 값을 담을수 없다.
- 업로드된 파일저장
. 데이터베이스에는 저장시키지 않는다
. DB에는 업로드 된 파일명과 확장명, 파일크기정도만 저장을 시키고,
실제 파일은 웹서버의 하드디스크에 저장을 시킨다.
- 전송된 File 저장(jakarta FileUpload API, 파일 업로드)
- 파일 전송 원리
파일 ---> Web Browser ---> 전송 ---> Tomcat ---> 디스크에 저장 (파일)
---> DB에 저장(파일관련 속성)
2. 파일업로드 관련 라이브러리 생성에 필요한 파일
commons-fileupload-1.3.1-bin.zip
- http://commons.apache.org/proper/commons-io/
---> Download
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 폴더에 파일이 있으면 업로드 성공
'⁂ JSP > : 기본 익히기' 카테고리의 다른 글
[JSP] #11-2 Http 에러페이지 만들고 띄우기 / web.xml 파일 수정하기 (0) | 2022.10.26 |
---|---|
[JSP] #11-1 MVC 모델 2를 알아보자 > EL/JSTL의 초석! (0) | 2022.10.26 |
[JSP] #9 자바 메일 보내기 (0) | 2022.10.19 |
[JSP] #8 쿠키 클래스 (0) | 2022.10.18 |
[JSP] #7 SCOPE- JSP의 내장객체와 내부변수 (0) | 2022.10.17 |