## 58. 파일 업로드 다루기 II - multipart/form-data POST 요청 파라미터 인코딩
- Servlet API를 이용하여 multipart/form-data 파라미터를 다루는 방법
build.gradle
ㄴ multipart/form-data 처리 라이브러리를 주석으로 설정
=> Servlet API 로 대체할 것
ㄴ gradle 재설정 해주기
=>
ㄴ Refresh 해주기
=>
ㄴ multipart/form-data 처리 라이브러리 제거됨을 확인
BoardAddServlet.java
ㄴ @MultipartConfig 애노테이션 이용
ㄴ maxFileSize 이용
=>
BoardAddServlet.java
ㄴ 1024 * 1024 * 10 => 파일의 크기 최대 10 메가까지 저장 가능
=>
BoardAddServlet.java
ㄴ 해당 코드 삭제
=>
BoardAddServlet.java
=>
BoardAddServlet.java
ㄴ 필요 없는 변수 제거해주기
=>
BoardAddServlet.java
ㄴ 해당 코드 제거
=>
BoardAddServlet.java
ㄴ 각각의 파트에서 값을 꺼내도록 함
=>
BoardAddServlet.java
=>
BoardAddServlet.java
=>
ㄴ java.util.Collection 을 import 하도록 함
=>
BoardAddServlet.java
ㄴ Part 이용하기
=>
BoardAddServlet.java
ㄴ part 에서 가져온 이름이 "files" 와 같을 경우
=>
BoardAddServlet.java
ㄴ 해당 코드 제거
=>
BoardAddServlet.java
ㄴ AttachedFile 타입의 데이터를 저장하기위해 ArrayList 이용
=>
BoardAddServlet.java
ㄴ new File 해서 File 객체를 생성할 필요가 없으므로 제거
=>
BoardAddServlet.java
=>
BoardAddServlet.java
ㄴ 필요 없는 변수 제거 해주도록 함
=>
BoardAddServlet.java
ㄴ 넘어오는 값이 "files" 와 같으며 값이 존재하는지 여부 확인하도록 함
=>
BoardAddServlet.java
ㄴ part.getName() 출력 해보기 위한 코드 추가
=>
ㄴ 서버 Start 해주기
=>
=>
ㄴ [등록] 선택
=>
=>
ㄴ 각 파일 링크 선택 시 위 그림 노출됨
=>
ㄴ part.getName() 출력됨을 확인
BoardUpdateServlet.java
=>
BoardUpdateServlet.java
ㄴ 해당 코드 제거
=>
BoardUpdateServlet.java
ㄴ BoardAddServlet 과 동일하게 작성
ㄴ Board 객체 생성과 작성자 설정을 위로 올려줌
ㄴ 이어서 title, content, category 설정을 해주도록 함
=>
BoardUpdateServlet.java
ㄴ 번호 설정을 추가하도록 함
=>
BoardUpdateServlet.java
ㄴ fileItem -> Part 로 변경
=> Part 를 이용하도록 함
=>
BoardUpdateServlet.java
ㄴ 해당 코드 제거
=>
BoardUpdateServlet.java
ㄴ 해당 조건 추가해주기
=>
BoardUpdateServlet.java
=>
BoardAddServlet.java
ㄴ 해당 코드는 테스트 끝났으므로 주석 처리 해주기
=>
ㄴ 서버 Restart 해주기
=>
=>
=>
ㄴ 정상적으로 수정됨을 확인
BoardAddServlet.java
ㄴ 파일이 첨부되지 않은 경우에는 이 부분이 실행되지 않도록 함
BoardUpdateServlet.java
ㄴ 파일이 첨부되지 않은 경우에는 이 부분이 실행되지 않도록 함