클라이언트에서 Form 태그 속성에 enctype = "multipart/form-data" method="post"
를 해야 파일을 업로드할 수 있다
파일 업로드를 위해서, commons-fileupload
를 dependency를 추가해야 한다
그리고 servlet-context.xml에 빈을 등록해야한다
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="100000000" />
</beans:bean>
@RequestPart("fileUpload") List<MultipartFile> fileUpload
MultipartFile.isEmpty()
로 물어본다fileList.get(0).isEmpty()
로 체크한다UUID.randomUUID()
@Component
public class FileSaveHelper {
@Resource(name = "saveDir")
private String saveDir;
public String save(MultipartFile file) {
String savedFileName = UUID.randomUUID().toString() + "_" + file.getOriginalFilename();
try {
file.transferTo(new File(saveDir + savedFileName));
} catch (Exception e) {
}
return savedFileName;
}
}
<bean id="saveDir" class="java.lang.String">
<constructor-arg value="d:/upload/" />
</bean>
@Autowired는 객체의 타입이 일치하는 객체를 DI 시킨다
하지만 @Resource는 빈에 등록된 ID(이름)를 찾아 DI시킨다