[Spring] File Upload
์ฐ์ ํ๋ฉด์์ form ํ๊ทธ๋ฅผ ์์ฑํ๋๋ฐ, ์ฌ๊ธฐ์ ์ค์ํ๊ฑด 2๊ฐ์ง๊ฐ ์๋ค.
<form name="detailForm" method="post" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="file" class="ct_input_g">
...
</form>
-
form ํ๊ทธ์ { enctype=โmultipart/form-dataโ } -> ํ์ผ ์ ๋ก๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
-
input ํ๊ทธ์ { type=โfileโ, multiple=โmultipleโ } -> ํ์ผ ๋ค์ค์ ๋ก๋๊ฐ ๊ฐ๋ฅํ๋๋ก ํ๋ค.
์ด๋ ๊ฒ ํ์ผ์ ์ฌ๋ ธ๋ค๋ฉด, Controller ์์ ์ธ์๋ก HttpServletRequest ๋ง๊ณ MultipartHttpServletRequest ๋ฅผ ๋ฐ์์ผ ํ๋ค.
MultipartHttpServletRequest :
HttpServletRequest ๋ฅผ ์์๋ฐ์๊ธฐ ๋๋ฌธ์, HttpServletRequest ๊ธฐ๋ฅ ๊ทธ๋๋ก ์ธ ์ ์์ผ๋ฉฐ ํ์ฅ๋ ๊ธฐ๋ฅ(ํ์ผ)์ด ๋ง์์ ํธํ๋ค.
๋, ~Request ๋ฅผ ํ์ฉํ๋ฉด ํ์ผ ์ ์ฅ๊ฒฝ๋ก๋ ํ๋์ฝ๋ฉํ์ง ์์๋ ๋๋ค.
@RequestMapping(value="addProduct", method=RequestMethod.POST)
public String addProduct(
@ModelAttribute("product") Product product,
MultipartHttpServletRequest request,
@RequestParam("file") MultipartFile[] file ) throws Exception {
//String uploadPath = request.getSession().getServletContext().getRealPath("/");
String uploadPath = request.getRealPath("../images/uploadFiles");
String fileOriginName = "";
String fileMultiName = "";
for(int i=0; i<file.length; i++) {
fileOriginName = file[i].getOriginalFilename();
System.out.println("๊ธฐ์กด ํ์ผ๋ช
: "+fileOriginName);
SimpleDateFormat formatter = new SimpleDateFormat("YYYYMMDD_HHMMSS_"+i);
Calendar now = Calendar.getInstance();
String extension = fileOriginName.split("\\.")[1]; // ํ์ฅ์๋ช
fileOriginName = formatter.format(now.getTime())+"."+extension; // //fileOriginName์ ๋ ์ง+.+ํ์ฅ์๋ช
์ผ๋ก ์ ์ฅ์ํด.
System.out.println("๋ณ๊ฒฝ๋ ํ์ผ๋ช
: "+fileOriginName);
File f = new File(uploadPath+"\\"+fileOriginName);
file[i].transferTo(f);
if(i==0) {
fileMultiName += fileOriginName;
} else {
fileMultiName += ","+fileOriginName;
}
}
System.out.println("*"+fileMultiName);
product.setFileName(fileMultiName);
productService.addProduct(product);
return "forward:/product/getProduct.jsp";
}
Leave a comment