i-framework-lite/.svn/pristine/33/338b75eb58f30454ef8dc61342a...

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;
}
}