JAVA
파일 업로드
KIMSG
2017. 7. 21. 14:08
1 2 3 4 5 6 7 | enctype="multipart/form-data"> form 태그에 꼭 멀티파트를 추가한다! <inputtype="file"class="inp_txt w100p"name="certBusiFile"id="certBusiFile"capture="certBusiFile"accept="image/*"/><br> | cs |
이렇게 input으로 값을 가져와서....
java객체로 돌립니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /*회원 첨부파일 등록*/ List<HashMap<String, String>> fileList = FileUtil.uploadFile(mutipartRequest); for(int i=0; i<fileList.size(); i++){ fileVO.setFileType(fileList.get(i).get("fileType")); fileVO.setUserNo(userNo.getUserNo()); fileVO.setFileNm(fileList.get(i).get("fileNm")); fileVO.setFilePath(fileList.get(i).get("filePath")); fileVO.setRegUser(userNo.getUserNm()); fileService.userAttachfile(fileVO); } | cs |
1 2 3 | 이때ㄴ, MultipartHttpServletRequest mutipartRequest, FileVO fileVO , 의 파라미터를 받아오고.... | cs |
fileutil은... 아래
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | package egovframework.utils; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Random; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; /** * GCM UTIL * * gcm-server.jar, json-simple-1.1.1.jar 필요 * * @author * */ public class FileUtil { private static final Logger log = LoggerFactory.getLogger(FileUtil.class); public static List<HashMap<String,String>> uploadFile(MultipartHttpServletRequest request) throws IOException { List<HashMap<String, String>> result = new ArrayList<HashMap<String, String>>(); String filePath = ""; //서버별 물리경로 구함. String directory_cert = "cert/"; String directory_prodImg = "productImage/"; String directory_user = "userImage/"; String originalFileName = ""; String originalFileExtension = ""; String storedFileName = ""; Iterator<String> itr = request.getFileNames(); while(itr.hasNext()) { MultipartFile mpf = request.getFile(itr.next()); if(mpf.isEmpty() == false){ filePath = request.getSession().getServletContext().getRealPath("/")+"/resource/upload/"; originalFileName = mpf.getOriginalFilename(); originalFileExtension = originalFileName.substring(originalFileName.indexOf(".")); storedFileName = createFileName() + originalFileExtension; HashMap<String, String> map = new HashMap<String, String>(); if(mpf.getName().contains("prodImg")){ //상품이미지 filePath += directory_prodImg+DateUtil.getCurrentDate("yyyyMMdd")+"/"; map.put("fileType", "PROD_IMG"); map.put("fileNm", storedFileName); map.put("filePath", directory_prodImg+DateUtil.getCurrentDate("yyyyMMdd")+"/"); } result.add(map); File file = new File(filePath); if(file.exists() == false){ file.mkdirs(); } file = new File(filePath + storedFileName); //상품이미지경로 + 현재일자폴더생성 + 파일명 mpf.transferTo(file); log.info(mpf.getOriginalFilename() +" uploaded!"); log.info("file length : " + mpf.getBytes().length); log.info("file name : " + mpf.getOriginalFilename()); } } return result; } public static String createFileName(){ String fileName = DateUtil.getCurrentDate("yyyyMMdd"); Random random = new Random(); fileName += String.valueOf(random.nextInt(100000)); return fileName; } } | cs |