172 lines
6.9 KiB
Plaintext
172 lines
6.9 KiB
Plaintext
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<Map<String,Object>> parseInsertFileInfo(String idx, HttpServletRequest request) throws NullPointerException, Exception{
|
|
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request;
|
|
Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
|
|
|
|
MultipartFile multipartFile = null;
|
|
String originalFileName = null;
|
|
String originalFileExtension = null;
|
|
String storedFileName = null;
|
|
|
|
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
|
|
Map<String, Object> 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<String,Object>();
|
|
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<String,Object>();
|
|
// 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<Map<String, Object>> parseUpdateFileInfo(HttpServletRequest request) throws NullPointerException, Exception{
|
|
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request;
|
|
Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
|
|
|
|
MultipartFile multipartFile = null;
|
|
String originalFileName = null;
|
|
String originalFileExtension = null;
|
|
String storedFileName = null;
|
|
|
|
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
|
|
Map<String, Object> 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<String,Object>();
|
|
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<String,Object>();
|
|
listMap.put("IS_NEW", "N");
|
|
listMap.put("FILE_IDX", (String)request.getParameter(idx));
|
|
list.add(listMap);
|
|
}
|
|
}
|
|
}
|
|
return list;
|
|
}
|
|
}
|