multipart 전송에서 name태그가 똑같은 파일 여러개 받기

-·2021년 3월 9일
1

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()가 여러개 나온다. 역시 파일이름 출력해봐도 여러개가 잘 쌓여있다.

찾은거 같다.

이렇게 또 하나 배운듯

profile
거북이는 오늘도 걷는다

0개의 댓글

관련 채용 정보