Spring,MyBatis 실무 과정 자료] 멀티 파일 업로드
Spring,MyBatis 실무 과정 자료] 멀티 파일 업로드
실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.
멀티 파일 업로드
■ JavaBeans에 List형식으로 가지고 있음.
■ public class FileuploadCommand implements Serializable {
MultipartFile 프러퍼티를 가지고 있는 JavaBean 리스트
private static final long serialVersionUID = 1L;
private List<FileuploadItem> fileuploadItems;
public FileuploadCommand() {
fileuploadItems = new ArrayList<FileuploadItem>();
}
public List<FileuploadItem> getFileuploadItems() {
return fileuploadItems;
}
public void setFileuploadItems(List<FileuploadItem> fileuploadItems) {
this.fileuploadItems = fileuploadItems;
}
}
■ FileUploadItem
public class FileuploadItem implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
//MultipartFile 정의
private MultipartFile file;
public FileuploadItem() {
}
@Override
public String toString() {
return “”;
}
// 생략(setter、getter)
}
■ JSP 작성
<h4>멀티 파일 업로드</h4>
<form:form modelAttribute="fileuploadCommand" action="${appUrl}/test/fileupload/multi.html" method="post" enctype="multipart/form-data">
<c:forEach items="${fileuploadCommand.fileuploadItems}" var="item" varStatus="itemStatus">
<p>
<form:input path="fileuploadItems[${itemStatus.index}].name" />
<form:errors path="fileuploadItems[${itemStatus.index}].name" cssClass="errors" />
<form:input path="fileuploadItems[${itemStatus.index}].file" type="file" />
<form:errors path="fileuploadItems[${itemStatus.index}].file" cssClass="errors" />
</p>
</c:forEach>
<input type="submit"/>
</form:form>
■ Controller 작성
@Controller
@RequestMapping("/test/fileupload")
public class FileuploadController {
// command 의 초기객체 취득
@ModelAttribute("fileuploadCommand")
public FileuploadCommand createInitCommand() {
FileuploadCommand command = new FileuploadCommand();
return command;
}
// 초기값 설정
@RequestMapping(method=RequestMethod.GET)
public void setupForm(Model model) {
FileuploadCommand command = createInitCommand();
// 최대 3개까지 업로드
for(int i=0; i < 3; i++) {
command.getFileuploadItems().add(new FileuploadItem());
}
model.addAttribute("fileuploadCommand", command);
}
■ Controller 작성(계속)
// 멀티 파일 업로드
@RequestMapping(value="multi", method=RequestMethod.POST)
public ModelAndView doAction2(@ModelAttribute("fileuploadCommand") FileuploadCommand command,
BindingResult bindingResult) throws IllegalStateException, IOException {
// 바인드에러 발생시 처리
if(bindingResult.hasErrors()) {
ModelAndView mav = new ModelAndView();
mav.getModel().putAll(bindingResult.getModel());
return mav;
}
'자바 > Spring' 카테고리의 다른 글
Spring,MyBatis 실무 과정 자료] REST 서비스 작성 (0) | 2017.04.20 |
---|---|
Spring,MyBatis 실무 과정 자료] 파일 사이즈 초과시 처리방법 (0) | 2017.04.20 |
Spring,MyBatis 실무 과정 자료] 단순한 파일 업로드 (0) | 2017.04.20 |
Spring,MyBatis 실무 과정 자료] CommonsFileUpload 준비 (0) | 2017.04.20 |
Spring,MyBatis 실무 과정 자료] 수치형 바인드(CustomNumberEditor) 실습 (0) | 2017.04.19 |