diff --git a/src/main/java/kcc/com/cmm/service/impl/InnorixFileDAO.java b/src/main/java/kcc/com/cmm/service/impl/InnorixFileDAO.java deleted file mode 100644 index 7dcc1ef4..00000000 --- a/src/main/java/kcc/com/cmm/service/impl/InnorixFileDAO.java +++ /dev/null @@ -1,31 +0,0 @@ -package kcc.com.cmm.service.impl; - -import egovframework.rte.psl.dataaccess.EgovAbstractDAO; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Repository; - -import com.ibatis.sqlmap.client.SqlMapClient; - -/** - * EgovComAbstractDAO.java 클래스 - * - * @author 서준식 - * @since 2011. 9. 23. - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    -------------    ----------------------
- *   2011. 9. 23.   서준식        최초 생성
- * 
- */ -@Repository("InnorixFileDAO") -public class InnorixFileDAO extends EgovAbstractDAO { - - -} diff --git a/src/main/java/seed/com/gtm/board/CaseBoardController.java b/src/main/java/seed/com/gtm/board/CaseBoardController.java index e88c44d7..49c3a90c 100644 --- a/src/main/java/seed/com/gtm/board/CaseBoardController.java +++ b/src/main/java/seed/com/gtm/board/CaseBoardController.java @@ -14,9 +14,14 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + import seed.com.gtm.seedfile.SeedFileService; import seed.com.gtm.util.Criteria; import seed.com.gtm.util.PageMaker; +import seed.common.service.InnorixFileService; +import seed.common.service.InnorixFileVO; @Controller @RequestMapping("/gtm/case") @@ -27,6 +32,9 @@ public class CaseBoardController { @Autowired private SeedFileService fileService; + @Autowired + private InnorixFileService innorixFileService; + public void setSessionMessageRemove(HttpSession session){ session.removeAttribute("url"); session.removeAttribute("message"); @@ -53,6 +61,19 @@ public class CaseBoardController { paramMap.put("dataIdx", paramMap.get("seq")); fileService.fileInsert(paramMap, request, session); + //이노릭스 대용량 업로드 + String innorixFileListVO = (String) paramMap.get("innorixFileListVO"); + if("".equals(innorixFileListVO)) { + + ObjectMapper objectMapper = new ObjectMapper(); + try { + List innorixFileList = objectMapper.readValue(innorixFileListVO, new TypeReference>() {}); + innorixFileService.innorixFileInsert(innorixFileList); + }catch (Exception e) { + e.printStackTrace(); + } + } + map.put("message", "common.message.reg"); map.put("url", "/gtm/case/board/"+boardIdx+"/list.do"); diff --git a/src/main/java/seed/common/service/AdrInnorixFileVO.java b/src/main/java/seed/common/service/AdrInnorixFileVO.java deleted file mode 100644 index 8f4ed7b2..00000000 --- a/src/main/java/seed/common/service/AdrInnorixFileVO.java +++ /dev/null @@ -1,360 +0,0 @@ -package seed.common.service; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import kcc.com.cmm.ComDefaultVO; - - -/** - * - * @author : 이호영 - * @fileName : InnorixVO.java - * @date : 2022.11.01 - * @description : 대용량 파일 등록 솔루션 VO - * =========================================================== - * DATE AUTHOR NOTE - * ----------------------------------------------------------- * - * 2022.11.01 이호영 최초 생성 - * - * - * - */ -public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 4400281789694196418L; - - // 사용자 ID - public String uniqId = ""; - - // 파일 구분을 위한 타입 - public String fileType = ""; - - // 파일 등록 후 리턴 메세지 jsp에서 넘겨줌 - public String successMsg = ""; - public String eduAplctOrd = ""; - public String eduChasiOrd = ""; - public String prcsAplctPrdOrd = ""; //기반강화 강의계획서용 - - // 컨트롤 엘리먼트 ID - 멀티 업로드 시 jsp에서 사용하는 el 값 - public String controlId = ""; - - // 승인코드 - 저작권 체험교실 결과보고서 임시저장 구분용으로 추가 - public String aprvlCd = ""; - - // 파일 ID - public String atchFileId = ""; - - -// private String frstRegistPnttm; //등록일시 -// private String frstRegisterId; //등록자 -// private String lastUpdtPnttm; //수정일시 -// private String lastUpdusrId; //수정자 - - public List innorixFileListVO = new ArrayList(); - - // 전체 교육인원 - 저작권 체험교실 결과보고서 항목 - public String trgtPrsnlReal = ""; - - //서류요청 기능 - public String docReqNm = ""; //요청 서류명 - public String sbmtId = ""; //제출 강사 ID - public String eduDocReqOrd = "";//서류요청 순번 - - public String cnclCn = "";//기소유예 취소사유 - - public String instrDetailOrd = "";//강사 고유PK - - public String lctrSbjct; //강의주제 - public String lctrPlace; //강의장소 - public String lctrTrgt; //교육대상 - public String nos; //인원 - public String instrNm; //강사명(소속) - - public String lctrDay; - public String lctrStrtH; - public String lctrStrtM; - public String lctrEndH; - public String lctrEndM; - - public String lctrDivCd; - - - - - - - - //강의활동확인서 컬럼 추가 - private String sex = ""; //성별 - private String purpose = ""; //용도 - private String bsnsNmbr = ""; //사업자등록번호 - private String bsnsNm = ""; //사업자명 - private String docuNmbr = ""; //문서번호 - - - public String getFileType() { - return fileType; - } - - public void setFileType(String fileType) { - this.fileType = fileType; - } - - public String getSuccessMsg() { - return successMsg; - } - - public void setSuccessMsg(String successMsg) { - this.successMsg = successMsg; - } - - public List getInnorixFileListVO() { - return innorixFileListVO; - } - - public void setInnorixFileListVO(List innorixFileListVO) { - this.innorixFileListVO = innorixFileListVO; - } - - public String getUniqId() { - return uniqId; - } - - public void setUniqId(String uniqId) { - this.uniqId = uniqId; - } - - public String getEduAplctOrd() { - return eduAplctOrd; - } - - public void setEduAplctOrd(String eduAplctOrd) { - this.eduAplctOrd = eduAplctOrd; - } - - public String getControlId() { - return controlId; - } - - public void setControlId(String controlId) { - this.controlId = controlId; - } - - public String getAprvlCd() { - return aprvlCd; - } - - public void setAprvlCd(String aprvlCd) { - this.aprvlCd = aprvlCd; - } - - public String getAtchFileId() { - return atchFileId; - } - - public void setAtchFileId(String atchFileId) { - this.atchFileId = atchFileId; - } - - public String getTrgtPrsnlReal() { - return trgtPrsnlReal; - } - - public void setTrgtPrsnlReal(String trgtPrsnlReal) { - this.trgtPrsnlReal = trgtPrsnlReal; - } - - public String getPrcsAplctPrdOrd() { - return prcsAplctPrdOrd; - } - - public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) { - this.prcsAplctPrdOrd = prcsAplctPrdOrd; - } - - public String getDocReqNm() { - return docReqNm; - } - - public void setDocReqNm(String docReqNm) { - this.docReqNm = docReqNm; - } - - public String getSbmtId() { - return sbmtId; - } - - public void setSbmtId(String sbmtId) { - this.sbmtId = sbmtId; - } - - public String getEduDocReqOrd() { - return eduDocReqOrd; - } - - public void setEduDocReqOrd(String eduDocReqOrd) { - this.eduDocReqOrd = eduDocReqOrd; - } - - public String getCnclCn() { - return cnclCn; - } - - public void setCnclCn(String cnclCn) { - this.cnclCn = cnclCn; - } - - public String getInstrDetailOrd() { - return instrDetailOrd; - } - - public void setInstrDetailOrd(String instrDetailOrd) { - this.instrDetailOrd = instrDetailOrd; - } - - public String getSex() { - return sex; - } - - public void setSex(String sex) { - this.sex = sex; - } - - public String getPurpose() { - return purpose; - } - - public void setPurpose(String purpose) { - this.purpose = purpose; - } - - public String getBsnsNm() { - return bsnsNm; - } - - public void setBsnsNm(String bsnsNm) { - this.bsnsNm = bsnsNm; - } - - public String getBsnsNmbr() { - return bsnsNmbr; - } - - public void setBsnsNmbr(String bsnsNmbr) { - this.bsnsNmbr = bsnsNmbr; - } - - public String getDocuNmbr() { - return docuNmbr; - } - - public void setDocuNmbr(String docuNmbr) { - this.docuNmbr = docuNmbr; - } - - public String getLctrSbjct() { - return lctrSbjct; - } - - public void setLctrSbjct(String lctrSbjct) { - this.lctrSbjct = lctrSbjct; - } - - public String getLctrPlace() { - return lctrPlace; - } - - public void setLctrPlace(String lctrPlace) { - this.lctrPlace = lctrPlace; - } - - public String getLctrTrgt() { - return lctrTrgt; - } - - public void setLctrTrgt(String lctrTrgt) { - this.lctrTrgt = lctrTrgt; - } - - public String getNos() { - return nos; - } - - public void setNos(String nos) { - this.nos = nos; - } - - public String getInstrNm() { - return instrNm; - } - - public void setInstrNm(String instrNm) { - this.instrNm = instrNm; - } - - public String getLctrDay() { - return lctrDay; - } - - public void setLctrDay(String lctrDay) { - this.lctrDay = lctrDay; - } - - public String getLctrStrtH() { - return lctrStrtH; - } - - public void setLctrStrtH(String lctrStrtH) { - this.lctrStrtH = lctrStrtH; - } - - public String getLctrStrtM() { - return lctrStrtM; - } - - public void setLctrStrtM(String lctrStrtM) { - this.lctrStrtM = lctrStrtM; - } - - public String getLctrEndH() { - return lctrEndH; - } - - public void setLctrEndH(String lctrEndH) { - this.lctrEndH = lctrEndH; - } - - public String getLctrEndM() { - return lctrEndM; - } - - public void setLctrEndM(String lctrEndM) { - this.lctrEndM = lctrEndM; - } - - public String getEduChasiOrd() { - return eduChasiOrd; - } - - public void setEduChasiOrd(String eduChasiOrd) { - this.eduChasiOrd = eduChasiOrd; - } - - public String getLctrDivCd() { - return lctrDivCd; - } - - public void setLctrDivCd(String lctrDivCd) { - this.lctrDivCd = lctrDivCd; - } - - - - - -} \ No newline at end of file diff --git a/src/main/java/seed/common/service/InnorixFileService.java b/src/main/java/seed/common/service/InnorixFileService.java new file mode 100644 index 00000000..cebd6366 --- /dev/null +++ b/src/main/java/seed/common/service/InnorixFileService.java @@ -0,0 +1,9 @@ +package seed.common.service; + +import java.util.List; + +public interface InnorixFileService { + + public void innorixFileInsert(List innorixFileList) throws Exception; + +} diff --git a/src/main/java/seed/common/service/InnorixFileServiceImpl.java b/src/main/java/seed/common/service/InnorixFileServiceImpl.java new file mode 100644 index 00000000..09257dcb --- /dev/null +++ b/src/main/java/seed/common/service/InnorixFileServiceImpl.java @@ -0,0 +1,25 @@ +package seed.common.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl; +import seed.dao.InnorixFileDAO; + +@Service("innorixFileService") +public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements InnorixFileService{ + + @Resource(name="innorixFileDAO") + public InnorixFileDAO innorixFileDAO; + + public void innorixFileInsert(List innorixFileList) throws Exception { + + for(InnorixFileVO innorixFileVO : innorixFileList) { + innorixFileDAO.innorixFileInsert(innorixFileVO); + } + } + +} diff --git a/src/main/java/seed/common/service/InnorixFileVO.java b/src/main/java/seed/common/service/InnorixFileVO.java index f73020c2..80e0479b 100644 --- a/src/main/java/seed/common/service/InnorixFileVO.java +++ b/src/main/java/seed/common/service/InnorixFileVO.java @@ -1,8 +1,11 @@ package seed.common.service; import java.io.Serializable; +import java.util.ArrayList; import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + import kcc.com.cmm.ComDefaultVO; @@ -20,8 +23,11 @@ import kcc.com.cmm.ComDefaultVO; * * */ +@JsonIgnoreProperties(ignoreUnknown = true) public class InnorixFileVO extends ComDefaultVO implements Serializable { + public List innorixFileListVO = new ArrayList(); + /** * */ @@ -63,9 +69,14 @@ public class InnorixFileVO extends ComDefaultVO implements Serializable { private String lastUpdusrId; + - - + public List getInnorixFileListVO() { + return innorixFileListVO; + } + public void setInnorixFileListVO(List innorixFileListVO) { + this.innorixFileListVO = innorixFileListVO; + } public String getRowID() { return rowID; } diff --git a/src/main/java/seed/dao/InnorixFileDAO.java b/src/main/java/seed/dao/InnorixFileDAO.java new file mode 100644 index 00000000..0afe5572 --- /dev/null +++ b/src/main/java/seed/dao/InnorixFileDAO.java @@ -0,0 +1,14 @@ +package seed.dao; + +import org.springframework.stereotype.Repository; + +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; +import seed.common.service.InnorixFileVO; + +@Repository("innorixFileDAO") +public class InnorixFileDAO extends EgovAbstractDAO { + + public void innorixFileInsert(InnorixFileVO innorixFileVO) throws Exception { + insert("com.seed.innorixFile.extraInsert", innorixFileVO); + } +} diff --git a/src/main/resources/egovframework/sqlmap/config/mappers/innorixFIle/innorixfile_sql.xml b/src/main/resources/egovframework/sqlmap/config/mappers/innorixFIle/innorixfile_sql.xml new file mode 100644 index 00000000..307be913 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mappers/innorixFIle/innorixfile_sql.xml @@ -0,0 +1,215 @@ + + + + + + INSERT INTO T_EXTRA_FILE( + EXTRA_FILE_IDX, + EXTRA_FILE_ENCRYPTION, + EXTRA_FILE_NAME, + EXTRA_FILE_RENAME, + EXTRA_FILE_REGDATE, + EXTRA_FILE_SIZE, + EXTRA_FILE_TEXT, + EXTRA_FILE_TYPE, + EXTRA_DATA_IDX, + EXTRA_FUNC_TYPE, + EXTRA_THUM_YN + ) VALUES ( + SEQ_EXTRA_FILE.NEXTVAL, + 'N', + #{uploadFileNameData}, + #{reFileName}, + SYSDATE, + #{fileSize}, + '', + #{fileType}, + #{dataIdx}, + #{fileFuncType}, + 'Y' + ) + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write.jsp b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write.jsp index c5edb857..31f2ceb2 100644 --- a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write.jsp +++ b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write.jsp @@ -57,7 +57,30 @@ ${memberName} +
+

첨부자료

+
+
+ + + + + +
+ +

+ + + + + +
+
+

내용

@@ -79,7 +102,8 @@
- + +
@@ -120,7 +144,11 @@ attach_list_view: false }); - + /* innorix-1 + 첨부파일 업로드 경로 전역 변수 선언 + */ + var directory = ""; + $(window).load(function(){ $("#idx_toolbar_webnote_content_imagecenter").hide(); @@ -153,11 +181,83 @@ return false; } */ }); + + /* 이노릭스 대용량 업로드 솔루션 */ + + /* innorix-2 + 첨부파일 업로드 경로 설정 + fileFuncType와 세션의 siteId등의 정보를 이용해 업로드 경로 설정 + */ + var fileFuncType = $("#fileTempUpFrm").find("input[name='fileFuncType']").val(); + var url = "" + getFileDirectory(fileFuncType, url, function(result){ + directory = result; + }); + + /* innorix-3 + 이노릭스 업로드 컨트롤 생성 + control 객체는 innorixCommon.js에서 생성 + */ + control = innorix.create({ + el: '#fileControl', // 컨트롤 출력 HTML 객체 ID + transferMode: 'both', // 업로드, 다운로드 혼합사용 + agent : false, + installUrl: "", // Agent 설치 페이지 + uploadUrl: "", // 업로드 URL + allowExtension : ["txt","jpeg","jpg","png","gif","bmp","mp3","mp4","hwp","doc","docx","xls","xlsx","ppt","pptx","pdf","zip","alz"] + }); + + // 업로드 완료 후 temp 파일 저장 + //control.on('afterAddFiles', function (p) { + //console.log('afterAddFiles : ', p); + //var postObj = new Object(); + //postObj.directory = directory; + //control.setPostData(postObj); + //control.upload(); // 업로드 시작 + /* $("#fileTempUpFrm").submit(); */ + /* fn_callBackInnorix(p.files); // 파일 정보 DB isnert function */ + //}); + + /* innorix-5 + 이노릭스 업로드 완료 후 + 콜백 함수로 파일 정보 전달 + */ + control.on('uploadComplete', function (p) { + console.log('uploadComplete : ', p); + fn_callBackInnorix(p.files); // 파일 정보 DB isnert function + }); }); + /* innorix-4 + 이노릭스 업로드 시작 + 첨부파일이 있을 시 업로드 후 게시글 작성 + 첨부파일이 없을 시 바로 게시글 작성 + */ + function innorixUpload(){ + if(control.getUploadFiles().length > 0){ + var postObj = new Object(); + postObj.directory = directory; + control.setPostData(postObj); + control.upload(); // 업로드 시작 */ + }else{ + $("button[type='submit']").click(); + } + } + + /* innorix-6 + 게시글 등록 처리 + 첨부파일 정보 DB 등록 및 게시글 등록 처리 + */ + function fn_callBackInnorix(data){ + $("input[name='innorixFileListVO']").val(JSON.stringify(data)); + /* $("input[name='innorixFileListVO']").val(data); */ + $("button[type='submit']").click(); + } + function goList(){ $("#paramFrm").submit(); } + diff --git a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write_testing.jsp b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write_back_bfInnorix.jsp similarity index 68% rename from src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write_testing.jsp rename to src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write_back_bfInnorix.jsp index 8f4bf45f..c5edb857 100644 --- a/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write_testing.jsp +++ b/src/main/webapp/WEB-INF/jsp/seed/_extra/gtm/board/write_back_bfInnorix.jsp @@ -57,29 +57,7 @@ ${memberName} -
-

첨부자료

-
-
- - - - - -
- -

- - - - -
-
- +

내용

@@ -101,8 +79,7 @@
- - +
@@ -143,11 +120,7 @@ attach_list_view: false }); - /* innorix-1 - 첨부파일 업로드 경로 전역 변수 선언 - */ - var directory = ""; - + $(window).load(function(){ $("#idx_toolbar_webnote_content_imagecenter").hide(); @@ -180,64 +153,11 @@ return false; } */ }); - - /* 이노릭스 대용량 업로드 솔루션 */ - - /* innorix-2 - 첨부파일 업로드 경로 설정 - fileFuncType와 세션의 siteId등의 정보를 이용해 업로드 경로 설정 - */ - var fileFuncType = $("#fileTempUpFrm").find("input[name='fileFuncType']").val(); - var url = "" - getFileDirectory(fileFuncType, url, function(result){ - directory = result; - }); - - /* innorix-3 - 이노릭스 업로드 컨트롤 생성 - control 객체는 innorixCommon.js에서 생성 - */ - control = innorix.create({ - el: '#fileControl', // 컨트롤 출력 HTML 객체 ID - transferMode: 'both', // 업로드, 다운로드 혼합사용 - agent : false, - installUrl: "", // Agent 설치 페이지 - uploadUrl: "", // 업로드 URL - allowExtension : ["txt","jpeg","jpg","png","gif","bmp","mp3","mp4","hwp","doc","docx","xls","xlsx","ppt","pptx","pdf","zip","alz"] - }); - - // 업로드 완료 후 temp 파일 저장 - //control.on('afterAddFiles', function (p) { - //console.log('afterAddFiles : ', p); - //var postObj = new Object(); - //postObj.directory = directory; - //control.setPostData(postObj); - //control.upload(); // 업로드 시작 - /* $("#fileTempUpFrm").submit(); */ - /* fn_callBackInnorix(p.files); // 파일 정보 DB isnert function */ - //}); - }); function goList(){ $("#paramFrm").submit(); } - - /* innorix-4 - 이노릭스 업로드 시작 - 첨부파일이 있을 시 업로드 후 게시글 작성 - 첨부파일이 없을 시 바로 게시글 작성 - */ - function innorixUpload(){ - if(control.getUploadFiles().length > 0){ - var postObj = new Object(); - postObj.directory = directory; - control.setPostData(postObj); - control.upload(); // 업로드 시작 */ - }else{ - $("button[type='submit']").click(); - } - } diff --git a/src/main/webapp/innorix/exam/seedUpload.jsp b/src/main/webapp/innorix/exam/seedUpload.jsp index 93f6f0f2..069dbc2e 100644 --- a/src/main/webapp/innorix/exam/seedUpload.jsp +++ b/src/main/webapp/innorix/exam/seedUpload.jsp @@ -1,6 +1,8 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.innorix.transfer.InnorixUpload" %> -<%@ page import="java.util.UUID" %> +<%@ page import="seed.utils.SeedDateUtil" %> +<%@ page import="seed.utils.SeedUtils" %> +<%@ page import="java.util.Date" %> <% // CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 @@ -45,6 +47,13 @@ if (request.getMethod().equals("POST")) */ /* String saveNm = UUID.randomUUID()+".jpg"; uploader.setFileName(saveNm); */ + SeedDateUtil seedDateUtil = new SeedDateUtil(); + String renameDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss"); + String fileType = _orig_filename.substring(_orig_filename.lastIndexOf(".")+1, _orig_filename.length()); + String reFileName = renameDate + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1))); + String saveNm = reFileName + "." + fileType; + uploader.setFileName(saveNm); + } uploader.setDirectory(_directory);