-
ajax 파일 전송Web (Spring ) 2016. 11. 17. 16:05
개요
Ajax 파일 업로드
1<script type="text/javascript" src="/js/jquery.form.js"></script>cs form data 전송 시 스크립트 선언
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364/*** 직인파일**/public class JiginAdminFileVo {private int jiginno; //직인파일 번호private String savefilename; // 저장파일private String orgfilename; //원본private String filetype; //파일 typeprivate String filesize; //파일 sizeprivate String datereg; //파일 등록일private String fileyn; //파일 삭제여부public int getJiginno() {return jiginno;}public void setJiginno(int jiginno) {this.jiginno = jiginno;}public String getSavefilename() {return savefilename;}public void setSavefilename(String savefilename) {this.savefilename = savefilename;}public String getOrgfilename() {return orgfilename;}public void setOrgfilename(String orgfilename) {this.orgfilename = orgfilename;}public String getFiletype() {return filetype;}public void setFiletype(String filetype) {this.filetype = filetype;}public String getFilesize() {return filesize;}public void setFilesize(String filesize) {this.filesize = filesize;}public String getDatereg() {return datereg;}public void setDatereg(String datereg) {this.datereg = datereg;}public String getFileyn() {return fileyn;}public void setFileyn(String fileyn) {this.fileyn = fileyn;}@Overridepublic String toString() {return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);}}cs bean 객체 생성
123456789101112@RequestMapping(value="/authenticate/jigin/insertJiginFile.do", method=RequestMethod.POST)@ResponseBodypublic String jiginInsert(HttpServletRequest request){String flag = "n";try{jiginService.insertJiginFile(request);flag = "y";}catch(Exception e){System.err.println(e.toString());}return flag;}cs controller
@parameter HttpServletRequest
@return String flag
1void insertJiginFile(HttpServletRequest request);cs service
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980@Overridepublic void insertJiginFile(HttpServletRequest request) {jiginDAO.deleteJiginFile(); //insert할때 마다 기존파일 삭제String uploadext = "png";String type = "";boolean typeFlag = false;if (uploadext == null) {uploadext = "";typeFlag = true;}uploadext = uploadext.toLowerCase();List<String> fileType = new ArrayList<String>();if (null != uploadext) {fileType = Arrays.asList(uploadext.split(","));}MultipartHttpServletRequest multi = (MultipartHttpServletRequest) request;Iterator<String> fileIterChk = multi.getFileNames();while (fileIterChk.hasNext()) {MultipartFile mFile = multi.getFile((String) fileIterChk.next());if (mFile.getSize() > 0) {String org = mFile.getOriginalFilename();//type = org.lastIndexOf(".") >= 0 ? org.substring(org.lastIndexOf(".") + 1) : "";type = type.toLowerCase();for (int a = 0; a < fileType.size(); a++) {if (fileType.get(a).equals(type)) {typeFlag = true;}}if (!typeFlag)return;// if (mFile.getSize()>uploadbytes*1024*1024) return// "첨부파일이 개별업로드용량 제한을 초과하였습니다.";else {Calendar c = Calendar.getInstance();int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;// 월값, +1하는 이유는 1월이 0으로 반환되기 때문String sPathChar = java.io.File.separator;String filePath = "/file" + "/" + year + "/" + month + "/"; //폴더생성 + 연도 + 월type = org.substring(org.lastIndexOf("."));type = type.toLowerCase();String storedFileName = filePath + "-" + CommonUtils.getRandomString() + type; //저장파일이름은 randomstring으로 변환// File file = new// File("D:/eGovFrameDev-3.5.1-32bit/workspace/greencity/src/main/webapp");File file = new File("E:/dev/eGovFrameDev-3.5.1-64bit/workspace/project/src/main/webapp"+filePath);if (file.exists() == false) {file.mkdirs();}try{file = new File("E:/dev/eGovFrameDev-3.5.1-64bit/workspace/project/src/main/webapp" + storedFileName);mFile.transferTo(file);JiginAdminFileVo jiginAdminFileVo = new JiginAdminFileVo();jiginAdminFileVo.setFiletype(type);jiginAdminFileVo.setOrgfilename(org);jiginAdminFileVo.setSavefilename(storedFileName);jiginAdminFileVo.setFilesize(Integer.toString((int) mFile.getSize()));jiginDAO.insertJiginFile(jiginAdminFileVo);}catch(Exception e){System.err.println(e.toString());}}}}cs service business logic
123public void insertJiginFile(JiginAdminFileVo jiginAdminFileVo) {insert("jiginDAO.insertJiginFile",jiginAdminFileVo);}cs dao mapper 연결
1234567891011121314151617181920212223<update id="jiginDAO.deleteJiginFile">update gn_jigin set fileyn = 'n'</update><insert id="jiginDAO.insertJiginFile" parameterClass="jiginAdminFileVo">insert into gn_jigin(savefilename, orgfilename, filetype, filesize)values(#savefilename#, #orgfilename#, #filetype#, #filesize#)</insert>cs query 작성
a12345678910111213141516171819202122232425function insertFile(){var form = $('form')[0];var formData = new FormData(form);$.ajax({type: "POST",data: formData,processData: false,contentType: false,dataType: "text",url: "/authenticate/jigin/insertJiginFile.do",success: function(data) {if(data == 'y'){alert("저장되었습니다");self.close();}else{alert("다시시도");}}, error: function(data, status, err) {alert('서버와의 통신이 실패했습니다.');return false;}});}cs ajax
'Web (Spring )' 카테고리의 다른 글
엑셀 생성 + 저장위치 설정 다운로드(리스트) (0) 2016.11.23 jQuery 동적 tr 생성 및 삭제 (0) 2016.11.18 jQuery DatePicker 기간조회 (0) 2016.11.16 List<Map<String,Object> add 방법 (1) 2016.09.30 전자정부프레임워크 Aria 암호화 & 복호화 (0) 2016.09.29