multipart로 파일전송을 한거까지는 좋았는데 받는쪽에서 name태그를 똑같이 써서 받는것이었다.
나의 짧은 지식으로는 name태그를 똑같이 하면 구별을 못할거같은데 잘 구별해서 받는다
어케 했는지 넘모 궁금해서 이것저것 시도해봄
@RequestMapping("/getFile")
public void getFile(HttpServletRequest request) {
try {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 안된다 구별못함
System.out.println("\n================\n");
Iterator<String> fileNameIter = multipartRequest.getFileNames();
while (fileNameIter.hasNext()) {
String key = fileNameIter.next();
System.out.println("key value: "+key);
}
// 역시 안됨 구별못함
System.out.println("\n================\n");
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Entry<String, MultipartFile> entry : fileMap.entrySet()) {
System.out.println(entry.getKey());
}
// 된다 리스트안에 모여있음
System.out.println("\n================\n");
Map<String, List<MultipartFile>> paramMap = multipartRequest.getMultiFileMap();
for (Entry<String, List<MultipartFile>> entry : paramMap.entrySet()) {
System.out.println(entry.getKey());
}
System.out.println("\n================\n");
List<MultipartFile> files = paramMap.get("files");
for (MultipartFile file : files) {
System.out.println(file.getOriginalFilename());
}
} catch (Exception e) {
e.printStackTrace();
}
}
구글링을 해보니까 거의다 getFileNames()이걸 활용하는 예시 밖에 안나온다.
그래서 메소드 이름이 getfile뭐 이렇게 되있는거는 다 찾아서 출력 해봄
getMultiFileMap()이건 return 값이 Map<String, List<MultipartFile>> key값별로 list로 만든다. 오 왠지 이건 될꺼같음
해보니 list.size()가 여러개 나온다. 역시 파일이름 출력해봐도 여러개가 잘 쌓여있다.
찾은거 같다.
이렇게 또 하나 배운듯