우당탕탕 개발일지
68일차_Spring Project(4) File Upload: Back 본문
반응형
1. Controller.java
// 3. 다중 파일 처리: List
@RequestMapping(value = "/upload", method = RequestMethod.POST, produces = "text/html; charset=UTF-8")
@ResponseBody
public String upload(@ModelAttribute UserFileUploadDTO userFileUploadDTO, // 파일 정보
@RequestParam("img[]") List<MultipartFile> imgList, // 업로드 파일 정보
HttpSession session) { //
// [ 파일 객체 설정 ]
// 실제 폴더
String filePath = session.getServletContext().getRealPath("resources/storage");
// D:\Spring\workspace\stsWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SpringProject\resources\storage
String imgOriginalFileName = null;
File file = null;
String result = "";
List<UserFileUploadDTO> dtoList = new ArrayList<UserFileUploadDTO>();
for (MultipartFile fileImg : imgList) {
System.out.println("userDTO : " + userFileUploadDTO.toString());
// 변수 설정
String imageFileName = UUID.randomUUID().toString();
UserFileUploadDTO dto = new UserFileUploadDTO();
imgOriginalFileName = fileImg.getOriginalFilename();
file = new File(filePath, imgOriginalFileName);
System.out.println("실제 폴더: " + filePath + "/" + imgOriginalFileName);
// file 객체로 형변환
try {
fileImg.transferTo(file);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 화면에 뿌릴 HTML 태그
result += "<span>"
+ "<img src='/Spring/resources/storage/" + imgOriginalFileName + "' width='300' height='300'"
+ "<span/><br>";
// dto 설정 후, dtoList에 저장
dto.setImageName(userFileUploadDTO.getImageName());
dto.setImageContent(userFileUploadDTO.getImageContent());
dto.setImageFileName(imageFileName);
dto.setImageOriginalName(imgOriginalFileName);
System.out.println("controller: " + dto.toString());
dtoList.add(dto);
}
// [ DB 저장 ]
fileUploadService.fileUpload(dtoList);
return result;
}
2. Mapper 두개 이상 등록
옆의 사진 처럼 등록해야하는 Mapper.xml이 2개 있다.
Mapper 파일 1개
Mapper 파일 2개
방법1. 배열 사용
Mapper.xml 파일 개수만큼 추가
방법2. 패턴 사용
와일드카드( * )를 사용하여 Mapper.xml 파일 등록
mapper 파일 아래, Mapper.xml로 끝나는 모든 파일을 Mapper로 등록
3. Bean 별명 짓기
mybatis-config.xml (기존 방식)
typeAliases 태그 사용하여 자주 사용하는 객체를 개발자가 원하는 이름으로 지정함
configuration.java
setTypeAliasesPackage() 함수를 사용하여 해당 경로에 있는 객체을 등록
해당 객체의 이름은 Mapper.xml 파일에서 사용할 때, Class 이름으로 사용한다.
Mapper.xml
UserFileUploadDTO.java
반응형
'비트캠프 > 이론 및 정리' 카테고리의 다른 글
74일차_React day01 & day02_vite (1) | 2024.10.22 |
---|---|
68일차_Spring Project(4) NCP : 프로젝트 & 파일 관련 기능 (1) | 2024.10.14 |
66일차_Spring Project(2) User (0) | 2024.10.10 |
65일차_Spring MVC(2) & Spring Project(1) (0) | 2024.10.10 |
64일차_MyBatis & Spring MVC (0) | 2024.10.07 |