이지우 > 대용량 업로드 솔루션 작업 중

This commit is contained in:
JIWOO 2024-11-06 09:59:35 +09:00
parent 9dabe697fa
commit a61a82d316
11 changed files with 413 additions and 480 deletions

View File

@ -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
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2011. 9. 23. 서준식 최초 생성
* </pre>
*/
@Repository("InnorixFileDAO")
public class InnorixFileDAO extends EgovAbstractDAO {
}

View File

@ -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<InnorixFileVO> innorixFileList = objectMapper.readValue(innorixFileListVO, new TypeReference<List<InnorixFileVO>>() {});
innorixFileService.innorixFileInsert(innorixFileList);
}catch (Exception e) {
e.printStackTrace();
}
}
map.put("message", "common.message.reg");
map.put("url", "/gtm/case/board/"+boardIdx+"/list.do");

View File

@ -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<InnorixFileVO> innorixFileListVO = new ArrayList<InnorixFileVO>();
// 전체 교육인원 - 저작권 체험교실 결과보고서 항목
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<InnorixFileVO> getInnorixFileListVO() {
return innorixFileListVO;
}
public void setInnorixFileListVO(List<InnorixFileVO> 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;
}
}

View File

@ -0,0 +1,9 @@
package seed.common.service;
import java.util.List;
public interface InnorixFileService {
public void innorixFileInsert(List<InnorixFileVO> innorixFileList) throws Exception;
}

View File

@ -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<InnorixFileVO> innorixFileList) throws Exception {
for(InnorixFileVO innorixFileVO : innorixFileList) {
innorixFileDAO.innorixFileInsert(innorixFileVO);
}
}
}

View File

@ -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<InnorixFileVO> innorixFileListVO = new ArrayList<InnorixFileVO>();
/**
*
*/
@ -63,9 +69,14 @@ public class InnorixFileVO extends ComDefaultVO implements Serializable {
private String lastUpdusrId;
public List<InnorixFileVO> getInnorixFileListVO() {
return innorixFileListVO;
}
public void setInnorixFileListVO(List<InnorixFileVO> innorixFileListVO) {
this.innorixFileListVO = innorixFileListVO;
}
public String getRowID() {
return rowID;
}

View File

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

View File

@ -0,0 +1,215 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.seed.innorixFile">
<insert id="extraInsert" parameterType="java.util.HashMap" useGeneratedKeys="false">
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'
)
</insert>
<!-- <insert id="caseInsert" parameterType="java.util.HashMap" useGeneratedKeys="false">
INSERT INTO C_CASEFILE(
FILE_NO,
SEQ_NO,
FILE_NAME,
FILE_ORGNAME,
FILE_PATH,
FILE_EXTENSION,
FILE_SIZE,
REG_DT,
REG_ID,
MOD_DT,
MOD_ID,
DEL_GUBUN,
FILE_GUBUN,
FILE_FUNC,
COPY_CONTRACT_YN
) VALUES (
#{rceptNo},
C_CASEFILE_SEQ.NEXTVAL,
#{uploadFileNameData},
#{reFileName},
#{filePath},
#{fileType},
#{fileSize},
SYSDATE,
<choose>
<when test="hpName != null and hpName != ''">
#{hpName},
</when>
<otherwise>
'',
</otherwise>
</choose>
SYSDATE,
'',
'N',
#{fileGubun},
#{fileFuncType},
#{copyContractYn}
)
</insert>
<select id="select" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT 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
FROM T_EXTRA_FILE
WHERE EXTRA_FUNC_TYPE = #{fileFuncType}
AND EXTRA_DATA_IDX = #{dataIdx}
AND EXTRA_THUM_YN = 'Y'
</select>
<select id="selectCase" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT FILE_NO,
SEQ_NO,
FILE_NAME,
FILE_ORGNAME,
FILE_PATH,
FILE_EXTENSION,
FILE_SIZE,
REG_DT,
REG_ID,
MOD_DT,
MOD_ID,
DEL_GUBUN,
FILE_GUBUN,
FILE_FUNC,
COPY_CONTRACT_YN
FROM C_CASEFILE
WHERE FILE_NO = #{rceptNo}
AND FILE_GUBUN = #{fileGubun}
AND DEL_GUBUN = 'N'
</select>
<select id="selectCaseEgov" parameterType="EgovMap" resultType="EgovMap">
SELECT FILE_NO,
SEQ_NO,
FILE_NAME,
FILE_ORGNAME,
FILE_PATH,
FILE_EXTENSION,
FILE_SIZE,
REG_DT,
REG_ID,
MOD_DT,
MOD_ID,
DEL_GUBUN,
FILE_GUBUN,
FILE_FUNC,
COPY_CONTRACT_YN,
20190916 수정..
(SELECT CODE_NAME FROM C_CODE WHERE CODE_IDXS = '4801000000') FILE_GUBUN_NM
(SELECT CODE_NAME FROM C_CODE WHERE CODE_IDXS = #{fileGubun}) FILE_GUBUN_NM
FROM C_CASEFILE
WHERE FILE_NO = #{rceptNo}
AND FILE_GUBUN = #{fileGubun}
AND DEL_GUBUN = 'N'
</select>
<select id="selectOne" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT 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
FROM T_EXTRA_FILE
WHERE EXTRA_FILE_IDX = #{dataIdx}
AND EXTRA_THUM_YN = 'Y'
</select>
<select id="caseFileOne" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT FILE_NO,
SEQ_NO,
FILE_NAME,
FILE_ORGNAME,
FILE_PATH,
FILE_EXTENSION,
FILE_SIZE,
REG_DT,
REG_ID,
MOD_DT,
MOD_ID,
DEL_GUBUN,
FILE_GUBUN,
FILE_FUNC,
COPY_CONTRACT_YN
FROM C_CASEFILE
WHERE SEQ_NO = #{dataIdx}
AND DEL_GUBUN = 'N'
</select>
<update id="delete" parameterType="java.util.HashMap">
UPDATE T_EXTRA_FILE
SET EXTRA_THUM_YN = 'N'
WHERE EXTRA_FILE_IDX = #{dataIdx}
</update>
<update id="caseDelete" parameterType="java.util.HashMap">
UPDATE C_CASEFILE
SET DEL_GUBUN = 'Y'
WHERE SEQ_NO = #{dataIdx}
</update>
<update id="deleteAll" parameterType="java.util.HashMap">
UPDATE T_EXTRA_FILE
SET EXTRA_THUM_YN = 'N'
WHERE EXTRA_DATA_IDX = #{dataIdx}
</update>
<insert id="hisInsert" parameterType="java.util.HashMap" useGeneratedKeys="false">
INSERT INTO C_CASEFILEHST(
FILE_NO,
FILE_SEQ,
SEQ_NO,
READER_ID,
REG_DT,
READER_GUBUN
)VALUES(
#{fileNo},
#{seqNo},
C_CASEFILEHST_SEQ.NEXTVAL,
#{hpName},
SYSDATE,
#{isGubun}
)
</insert> -->
</mapper>

View File

@ -57,7 +57,30 @@
${memberName}
</div>
</div>
<!-- innorix 대용량 업로드 솔루션 -->
<div class="bbs-view-item">
<p class="item-title">첨부자료</p>
<div class="item-box">
<div class="temp-file-area">
<!-- 단일 파일 업로드 -->
<input type="button" value="첨부파일" class="btn btn_text btn_36 blue_border temp-file-button" onclick="control.openFileDialogSingle();"/>
<!-- <label for="upFile" class="btn btn_text btn_36 blue_border temp-file-button" style="display:flex;justify-content:center;align-items:center;">첨부파일</label> -->
<!-- 멀티 파일 업로드 -->
<!-- <input type="button" value="첨부파일" class="btn btn_text btn_36 blue_border temp-file-button" onclick="control.openFileDialog();"/> -->
</div>
<!-- 첨부파일 업로드 목록 및 드래그&드랍 영역 -->
<div id="fileControl"></div><br/>
<input type="hidden" name="fileFuncType" value="form_notice" />
<input type="hidden" name="innorixFileListVO" value="" />
<!-- <ul class="upFileHtml" id="upFileHtml">
</ul>
<input type="hidden" name="uploadFileCnt" value="0" id="uploadFileCntId" />
<input type="hidden" name="deleteFileData" value="" id="deleteFileDataId" /> -->
</div>
</div>
<!-- <div class="bbs-view-item">
<p class="item-title">첨부자료</p>
<div class="item-box">
<div class="temp-file-area">
@ -70,7 +93,7 @@
<input type="hidden" name="uploadFileCnt" value="0" id="uploadFileCntId" />
<input type="hidden" name="deleteFileData" value="" id="deleteFileDataId" />
</div>
</div>
</div> -->
<div class="bbs-view-item">
<p class="item-title">내용</p>
<div class="item-box">
@ -79,7 +102,8 @@
</div>
</div>
<div class="btn_wrap right">
<button type="submit" class="btn btn_text btn_46 blue_fill">저장</button>
<button type="submit" id="submitBtn" class="btn btn_text btn_46 blue_fill" style="display:none;">저장</button>
<button type="button" class="btn btn_text btn_46 blue_fill" onclick="innorixUpload();">저장</button>
<button type="button" onclick="javascript:goList()" class="btn btn_text btn_46 gray_fill">목록</button>
</div>
</fieldset>
@ -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 = "<c:url value='/seed/innorix/getRealFileDirectoryAjax.do'/>"
getFileDirectory(fileFuncType, url, function(result){
directory = result;
});
/* innorix-3
이노릭스 업로드 컨트롤 생성
control 객체는 innorixCommon.js에서 생성
*/
control = innorix.create({
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
transferMode: 'both', // 업로드, 다운로드 혼합사용
agent : false,
installUrl: "<c:url value='/innorix/install/install.html'/>", // Agent 설치 페이지
uploadUrl: "<c:url value='/innorix/exam/seedUpload.jsp'/>", // 업로드 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();
}
</script>
<script src="/js/jquery.form.js"></script>
<script src="/js/seedFileUtil.js"></script>

View File

@ -57,29 +57,7 @@
${memberName}
</div>
</div>
<!-- innorix 대용량 업로드 솔루션 -->
<div class="bbs-view-item">
<p class="item-title">첨부자료</p>
<div class="item-box">
<div class="temp-file-area">
<!-- 단일 파일 업로드 -->
<input type="button" value="첨부파일" class="btn btn_text btn_36 blue_border temp-file-button" onclick="control.openFileDialogSingle();"/>
<!-- <label for="upFile" class="btn btn_text btn_36 blue_border temp-file-button" style="display:flex;justify-content:center;align-items:center;">첨부파일</label> -->
<!-- 멀티 파일 업로드 -->
<!-- <input type="button" value="첨부파일" class="btn btn_text btn_36 blue_border temp-file-button" onclick="control.openFileDialog();"/> -->
</div>
<!-- 첨부파일 업로드 목록 및 드래그&드랍 영역 -->
<div id="fileControl"></div><br/>
<input type="hidden" name="fileFuncType" value="form_notice" />
<!-- <ul class="upFileHtml" id="upFileHtml">
</ul>
<input type="hidden" name="uploadFileCnt" value="0" id="uploadFileCntId" />
<input type="hidden" name="deleteFileData" value="" id="deleteFileDataId" /> -->
</div>
</div>
<!-- <div class="bbs-view-item">
<p class="item-title">첨부자료</p>
<div class="item-box">
<div class="temp-file-area">
@ -92,7 +70,7 @@
<input type="hidden" name="uploadFileCnt" value="0" id="uploadFileCntId" />
<input type="hidden" name="deleteFileData" value="" id="deleteFileDataId" />
</div>
</div> -->
</div>
<div class="bbs-view-item">
<p class="item-title">내용</p>
<div class="item-box">
@ -101,8 +79,7 @@
</div>
</div>
<div class="btn_wrap right">
<button type="submit" id="submitBtn" class="btn btn_text btn_46 blue_fill" style="display:none;">저장</button>
<button type="button" class="btn btn_text btn_46 blue_fill" onclick="innorixUpload();">저장</button>
<button type="submit" class="btn btn_text btn_46 blue_fill">저장</button>
<button type="button" onclick="javascript:goList()" class="btn btn_text btn_46 gray_fill">목록</button>
</div>
</fieldset>
@ -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 = "<c:url value='/seed/innorix/getRealFileDirectoryAjax.do'/>"
getFileDirectory(fileFuncType, url, function(result){
directory = result;
});
/* innorix-3
이노릭스 업로드 컨트롤 생성
control 객체는 innorixCommon.js에서 생성
*/
control = innorix.create({
el: '#fileControl', // 컨트롤 출력 HTML 객체 ID
transferMode: 'both', // 업로드, 다운로드 혼합사용
agent : false,
installUrl: "<c:url value='/innorix/install/install.html'/>", // Agent 설치 페이지
uploadUrl: "<c:url value='/innorix/exam/seedUpload.jsp'/>", // 업로드 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();
}
}
</script>
<script src="/js/jquery.form.js"></script>
<script src="/js/seedFileUtil.js"></script>

View File

@ -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);