1. pom.xml에 모듈 추가
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
※ 스프링에서 기본으로 제공되는 home.jsp에서 테스트를 해본다.
2. servlet-context.xml에 객체 생성
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="defaultEncoding" value="UTF-8" />
<beans:property name="maxUploadSize" value="52428800" />
</beans:bean>
3. home.jsp에 업로드 폼 추가
<form action="fileUpload" enctype="multipart/form-data" method="post">
<input type="file" name="file1" />
<input type="file" name="file2" />
<input type="submit" value="파일첨부" />
</form>
4. HomeController.java 컨트롤러에 설정 추가
wepapp 아래에 upload 폴더를 만들어야 한다.
@RequestMapping(value="/fileUpload", method=RequestMethod.POST)
public ModelAndView fileUpload(MultipartHttpServletRequest mRequest) {
boolean isSuccess = false;
ModelAndView mav = new ModelAndView();
String uploadPath = "c:/workspaces/spring_sts/chap12_multi_fileUpload/src/main/webapp/upload/";
// wepapp 아래에 upload 폴더를 만들어야 한다.
File dir = new File(uploadPath);
if(!dir.isDirectory()) {
dir.mkdirs(); // 위의 경로에 빠진 폴더가 있으면 자동으로 폴더를 생성해주는 메서드
}
Iterator<String> iter = mRequest.getFileNames();
while(iter.hasNext()) {
String uploadFileName = iter.next();
MultipartFile mFile = mRequest.getFile(uploadFileName);
String originalFileName = mFile.getOriginalFilename();
String saveFileName = originalFileName;
if(saveFileName != null && !saveFileName.equals(" ")) {
if(new File(uploadFileName+saveFileName).exists()) {
saveFileName = saveFileName+"_"+System.currentTimeMillis();
// 업로드된 파일 저장시 시간을 파일명 뒤에 붙여주는 방식
}
try {
mFile.transferTo(new File(uploadPath+saveFileName)); // 첨부된 파일을지정한 경로에 저장해주는 메서드
isSuccess = true;
} catch (IllegalStateException e) {
e.printStackTrace();
isSuccess = false;
} catch (IOException e) {
e.printStackTrace();
isSuccess = false;
}
}
}
if(isSuccess) {
mav.addObject("result", "SUCCESS");
} else {
mav.addObject("result", "FAIL");
}
mav.setViewName("fileUpload_result"); // 결과 확인을 위한 jsp
return null;
}
5. fileUpload_result.jsp
결과 확인을 위한 jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파일 업로드 결과</title>
</head>
<body>
<h1>${result}</h1>
</body>
</html>
' Spring Framework' 카테고리의 다른 글
스프링 STS 대시보드 안뜨게 하기 (0) | 2016.05.11 |
---|---|
스프링 상식 테스트 (0) | 2016.04.26 |
MyBatis 실습: DB연동 구조 (완성) (0) | 2016.04.12 |
iBATIS 실습: DB연동 구조 (완성) (0) | 2016.04.12 |
iBATIS 실습: DB연동 구조 (미완) (0) | 2016.04.12 |