일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 꽃
- Photo
- 50mm
- 푸른초장교회
- AF-S 18-35mm
- nikkor
- 푸초
- 18-35mm
- spring
- AF-S NIKKOR 85mm f/1.8G
- 카메라
- 50mm f/1.8G
- 출사
- 85mm 1.8g
- 일상
- 하늘풍경
- 렌즈
- 경치
- af-s 18-35
- daily
- 사진
- AF-S NIKKOR 18-35mm f/3.5-4.5G ED
- 85mm f/1.8G
- D750
- AF-S NIKKOR 50mm f/1.8G
- camera
- 풍경
- Nikon
- 여름성경학교
- 니콘
- Today
- Total
병갈이 블록
홈페이지02 - 파일전송 테스트 본문
사진전송관련 테스트.
1. 1. 파일을 전송할 jsp페이지에서 폼 인코딩 타입지정.
post전송방식은 두가지 인코딩방식으로 동작한다.
- application/x-www-form-urlencoded
- multipart/form-data
일반적인 post환경(문자열 전송등)은 "application/x-www-form-urlencoded"을 이용했다.(기본값)
그러나 사진 등 파일을 업로드 하기위해선 "multipart/form-data"을 사용해야한다.
<form action="전송경로" method="post" enctype="multipart/form-data">
1. 2. web.xml에 multipart-config를 등록해준다.
- 이 파일을 처리할 서블릿이 등록된 web.xml에 <multipart-config>를 등록해서 관련 정보를 설정해준다.
- 그래야 서블릿에서 request로 넘어오는 Part를 제대로 받을 수 있다.
2. 속성과 관련된 설명.
1. request관련 메서드
- request.getContentType() : 폼으로 전송된 인코딩 타입이 담겨있다.
enctype 미 지정시 : "application/x-www-form-urlencoded" 출력.
enctype을 multipar로 지정시 : "multipart/form-data; boundary=----------------" 형태로 출력.
이녀석으로 파일이 전송된건지, 아니면 일반 텍스트 자료가 전송된건지 확인.
- request.getParts() :
Collection<Part> 자료형을 받아온다. 하나의 Part가 하나의 파일이다.
즉, 파일 전송이 여러개일 경우 이 메서드를 사용해야 한다.
- request.getPart(String name) :
Part 자료형을 받아온다. 하나의 데이터만 받고 name매개변수에는 input태그의 name속성값을 적는다.
2. Part 관련 메서드
- getContentType() :
ContentType을 받아온다. 이미지의 경우 "image/확장자"로 출력된다.
- getName() :
input태그의 name속성의 값이 출력된다.
- getSize() :
long형을 반환하고 파일의 크기를 '바이트(byte)'단위로 나타낸다.
- getSubmittedFileName() :
explorer에서는 파일의 실제 경로를 출력하고, 크롬에서는 파일이름만 출력한다.
- getHeader(String name) :
* 헤더 목록.
- Content-Disposition :
Content의 성질? 무튼, 여기서는 {form-data; name="name"; filename="filename"; } 이렇게 세가지가 들어가있다.
name, filename의 경우는 위 getName, getSubmittedFileName메서드로 얻을 수 있다.
- Content-Type : 위의 getContentType과 같은 결과.
- getHeaderNames() : Collection<String>으로 헤더 목록을 반환한다.
** 파일 출력관련 메서드
- write(String path) : 실제 경로 및 파일이름을 path에 입력한다. 파일을 출력한다.
- delete() : write를 완료한 이후에 호출하는 메서드.
** 경로를 정할 때 문자 "\" 와 "/". 둘다 되는데 하나로 통일을 하자. 그래야 안복잡해 보인다.
PS. multipart전송시 getPart, getParts메서드가 empty를 토하는 이유.
- 이걸로 쌩 쑈를 다 했다. 아무리 해도 Part를 계속 못받아오는 것이다.
- 검색을 하다보니 web.xml에 대한 언급들이 있기에 혹시나 하는 생각으로 web.xml에 multipart-config를 입력한다.
- 된다..;;;;에혀....1.2로 추가했다.
'IT(Old) > JSP 실습 과정 기록' 카테고리의 다른 글
사진관련 게시판 구현. (0) | 2017.07.31 |
---|---|
번외 - 사진 복사관련. (0) | 2017.07.29 |
홈페이지02 - 중간점검. (0) | 2017.07.28 |
홈페이지2 - 서블릿 구성도 (0) | 2017.07.23 |
자바 업데이트 후 이클립스 오류 (0) | 2017.07.23 |