package kr.co.i4way.common.util; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @Component("fileUtils") public class FileUtils { private static final String filePath = "C:\\dev\\file\\"; //private static final String filePath = "/genesys/upload/"; public List> parseInsertFileInfo(String idx, HttpServletRequest request) throws NullPointerException, Exception{ MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request; Iterator iterator = multipartHttpServletRequest.getFileNames(); MultipartFile multipartFile = null; String originalFileName = null; String originalFileExtension = null; String storedFileName = null; List> list = new ArrayList>(); Map listMap = null; String boardIdx = idx; File file = new File(filePath); file.setExecutable(false, true); file.setReadable(true); file.setWritable(false, true); if(file.exists() == false){ file.mkdirs(); } while(iterator.hasNext()){ multipartFile = multipartHttpServletRequest.getFile(iterator.next()); if(multipartFile.isEmpty() == false){ originalFileName = multipartFile.getOriginalFilename(); if (originalFileName.endsWith(".doc") || originalFileName.endsWith(".hwp") || originalFileName.endsWith(".pdf") || originalFileName.endsWith(".xls") || originalFileName.endsWith(".xlsx") || originalFileName.endsWith(".jpg") || originalFileName.endsWith(".gif") || originalFileName.endsWith(".png") || originalFileName.endsWith(".ppt") || originalFileName.endsWith(".pptx") || originalFileName.endsWith(".doc") || originalFileName.endsWith(".docx") ) { // file 업로드 루틴 originalFileExtension = originalFileName.substring(originalFileName.lastIndexOf(".")); storedFileName = CommonUtils.getRandomString() + originalFileExtension; file = new File(filePath + storedFileName); multipartFile.transferTo(file); listMap = new HashMap(); listMap.put("BOARD_IDX", boardIdx); listMap.put("ORIGINAL_FILE_NAME", originalFileName); listMap.put("STORED_FILE_NAME", storedFileName); listMap.put("FILE_SIZE", multipartFile.getSize()); listMap.put("USER_ID", request.getParameter("USER_ID")); list.add(listMap); } else throw new ServletException("허용하지 않는 확장자"); } } // while(iterator.hasNext()){ // multipartFile = multipartHttpServletRequest.getFile(iterator.next()); // if(multipartFile.isEmpty() == false){ // originalFileName = multipartFile.getOriginalFilename(); // originalFileExtension = originalFileName.substring(originalFileName.lastIndexOf(".")); // storedFileName = CommonUtils.getRandomString() + originalFileExtension; // // file = new File(filePath + storedFileName); // multipartFile.transferTo(file); // // listMap = new HashMap(); // listMap.put("BOARD_IDX", boardIdx); // listMap.put("ORIGINAL_FILE_NAME", originalFileName); // listMap.put("STORED_FILE_NAME", storedFileName); // listMap.put("FILE_SIZE", multipartFile.getSize()); // listMap.put("USER_ID", request.getParameter("USER_ID")); // list.add(listMap); // } // } return list; } public List> parseUpdateFileInfo(HttpServletRequest request) throws NullPointerException, Exception{ MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request; Iterator iterator = multipartHttpServletRequest.getFileNames(); MultipartFile multipartFile = null; String originalFileName = null; String originalFileExtension = null; String storedFileName = null; List> list = new ArrayList>(); Map listMap = null; String boardIdx = (String)request.getParameter("IDX"); String requestName = null; String idx = null; while(iterator.hasNext()){ multipartFile = multipartHttpServletRequest.getFile(iterator.next()); if(multipartFile.isEmpty() == false){ originalFileName = multipartFile.getOriginalFilename(); if (originalFileName.endsWith(".doc") || originalFileName.endsWith(".hwp") || originalFileName.endsWith(".pdf") || originalFileName.endsWith(".xls") || originalFileName.endsWith(".xlsx") || originalFileName.endsWith(".jpg") || originalFileName.endsWith(".gif") || originalFileName.endsWith(".png") || originalFileName.endsWith(".ppt") || originalFileName.endsWith(".pptx") || originalFileName.endsWith(".doc") || originalFileName.endsWith(".docx") ) { originalFileExtension = originalFileName.substring(originalFileName.lastIndexOf(".")); storedFileName = CommonUtils.getRandomString() + originalFileExtension; multipartFile.transferTo(new File(filePath + storedFileName)); listMap = new HashMap(); listMap.put("IS_NEW", "Y"); listMap.put("BOARD_IDX", boardIdx); listMap.put("ORIGINAL_FILE_NAME", originalFileName); listMap.put("STORED_FILE_NAME", storedFileName); listMap.put("FILE_SIZE", multipartFile.getSize()); list.add(listMap); } else throw new ServletException("허용하지 않는 확장자"); } else{ requestName = multipartFile.getName(); idx = "IDX_"+requestName.substring(requestName.indexOf("_")+1); if(request.getParameter(idx) != null){ listMap = new HashMap(); listMap.put("IS_NEW", "N"); listMap.put("FILE_IDX", (String)request.getParameter(idx)); list.add(listMap); } } } return list; } }