- form 태그안에 아래와 같이 type="file", name="yfiles", multiple 속성 주면 됨
(name은 전송될 파일 이름)
<div class="form-group">
<label for="file">Select files:</label>
<input type="file" name="yfiles" id="file" accept="image/jpeg, image/png" multiple />
</div>
- script
var formData = new FormData($(this)[0]);
- 전송되는 Payload를 보면 모두 yfiles라는 이름으로 파일들이 전송되고 있음
- 파일과 유저 정보 모두 MultipartHttpServletRequest 여기 안에 들어 있지만 꺼내기 쉽게 유저 정보는 DTO로 받음
. 파일 데이터 꺼낼 곳 : MultipartHttpServletRequest multipartFiles
. 유저 데이터 꺼낼 곳 : UserInfoDTO userInfoDTO
- 파일들은 모두 이름이 yfiles로 동일하게 오므로 아래와 같이 리스트로 꺼내도 됨
. List<MultipartFile> multipartFilesList = multipartFiles.getFiles("yfiles");
- 하지만 나중에 이름이 다르게 올때를 대비해서 아래과 같이 범용적으로 구현
. Iterator<String> fileNames = multipartFiles.getFileNames();
. while (fileNames.hasNext()) {
. List<MultipartFile> multipartFilesList = multipartFiles.getFiles(fileName);
- 실제 파일은 리스트에서 MultipartFile 형태로 꺼내면
. for (MultipartFile multipartFile : multipartFilesList) {