diff --git a/pom.xml b/pom.xml index 251ce224..204d9100 100644 --- a/pom.xml +++ b/pom.xml @@ -514,7 +514,35 @@ commons-dbutils 1.6 + + + + commons-codec + commons-codec + 1.4 + + + + commons-compress + commons-compress + 1.1 + + + + InnorixJAVA + InnorixJAVA + r2146 + + + + JSON-java + JSON-java + 1 + + + + install diff --git a/src/main/java/seed/com/user/mediation/WebMediationController.java b/src/main/java/seed/com/user/mediation/WebMediationController.java index 929038d0..5079144a 100644 --- a/src/main/java/seed/com/user/mediation/WebMediationController.java +++ b/src/main/java/seed/com/user/mediation/WebMediationController.java @@ -1,7 +1,5 @@ package seed.com.user.mediation; -import java.sql.PreparedStatement; -import java.sql.SQLException; import java.text.ParseException; import java.util.Date; import java.util.List; @@ -13,8 +11,8 @@ import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; -import org.springframework.jdbc.core.BatchPreparedStatementSetter; -import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; @@ -279,7 +277,190 @@ public class WebMediationController { session.setAttribute("siteIdx", siteIdx); return new ModelAndView("/_extra/web/user/mediation/mediationStep04"); - } + } + + // /web/user/mediation/case/05/154/mediationStep04.do + @RequestMapping("/web/user/mediation/{siteIdx}/05/{siteMenuIdx}/mediationStep04_1.do") + public ModelAndView mediationStep04_1(ModelMap map, HttpSession session, @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx + , HttpServletRequest req){ + +// String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + /*String tempAgreeCheck = SeedUtils.setReplaceNull(session.getAttribute("agreeCheck"));*/ +// if(tempHpDi.equals("")/* || tempAgreeCheck.equals("")*/){ +// map.put("siteIdx", "case"); +// map.put("url", "/case/index.do"); +// map.put("message", "user.message.medi.session.alert"); +// map.put("opener", ""); +// map.put("append", ""); +// map.put("self", ""); +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + + /*----권한체크----*/ + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); + + //메뉴 권한설정 +// if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && +// !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ +// +// map.put("message", "common.message.no.grant"); +// +// if(memberIdx.equals(0)){ +// map.put("url", "/"+siteIdx+"/index.do"); +// }else{ +// map.put("self", "history"); +// } +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + boolean b_ret = true; + b_ret = FairnetUtils.hasUserAuth(memberIdx, memberGrant, memberAuth, session, map); + + if (!b_ret) { + return new ModelAndView("/_common/jsp/message"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + String agreeCheck = SeedUtils.setReplaceNull(paramMap.get("agreeCheck")); + String personalCheck = SeedUtils.setReplaceNull(paramMap.get("personalCheck")); + +// String rceptNo = SeedUtils.setReplaceNull(session.getAttribute("rceptNo")); + String rceptNo = SeedUtils.setReplaceNull(paramMap.get("rceptNo")); + String mediType = SeedUtils.setReplaceNull(paramMap.get("mediType")); + String fileGubun = SeedUtils.setReplaceNull(session.getAttribute("fileGubun")); + paramMap.put("rceptNo", rceptNo); + paramMap.put("mediType", mediType); + paramMap.put("fileGubun", fileGubun); + paramMap.put("agreeCheck", agreeCheck); + paramMap.put("personalCheck", personalCheck); + + if(!rceptNo.equals("")){ + map.put("recptmsData", service2.selectRecptms(paramMap));//사건마스터 + map.put("applcntData", service2.selectApplcnt(paramMap));//신청인 + map.put("respondentData", service2.selectRespondent(paramMap));//피신청인 + map.put("appagentData", service2.selectAppagent(paramMap));//신청인 대리인 + map.put("selectRceptsttus", service2.selectRceptsttus(paramMap));//접수현황 + map.put("selectReason", service2.selectReason(paramMap));//신청경로 + map.put("selectSubcntrsttusA", service2.selectSubcntrsttusA(paramMap));//A 하도급대급 내역 리스 + map.put("selectSubcntrsttusTotA", service2.selectSubcntrsttusTotA(paramMap));//A 하도급 소계 그룹바이 + map.put("selectSubcntrsttusR", service2.selectSubcntrsttusR(paramMap));//R 하도급대급 내역 리스 + map.put("selectSubcntrsttusTotR", service2.selectSubcntrsttusTotR(paramMap));//R 하도급 소계 그룹바이 + map.put("caseFileList", fileService.caseFileList(paramMap));//파일 리스트 + }else { + map.put("message", "정상적이지 않은 사건번호입니다. 관리자에게 문의하세요."); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + map.put("rceptNo", rceptNo); + map.put("agreeCheck", agreeCheck); + map.put("personalCheck", personalCheck); + map.put("mediType", mediType); + + session.setAttribute("siteIdx", siteIdx); + + return new ModelAndView("/_extra/web/user/mediation/mediationStep04_1"); + } // /web/user/mediation/case/01/154/mediationApp.do @RequestMapping("/web/user/mediation/{siteIdx}/01/{siteMenuIdx}/mediationApp.do") @@ -882,5 +1063,1234 @@ public class WebMediationController { return new ModelAndView("/_extra/web/user/mediation/mediationStep03"); } + + @RequestMapping("/web/user/mediation/{siteIdx}/05/{siteMenuIdx}/update.do") + public ModelAndView setMediationUp(ModelMap map, HttpServletRequest request, HttpSession session,@RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + //String tempAgreeCheck = SeedUtils.setReplaceNull(session.getAttribute("agreeCheck")); + if(tempHpDi.equals("") /*|| tempAgreeCheck.equals("")*/){ + map.put("siteIdx", "case"); + map.put("url", "/case/index.do"); + map.put("message", "user.message.medi.expiration"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + } + + /*----권한체크----*/ + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); + +// //메뉴 권한설정 +// if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && +// !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ +// +// map.put("message", "common.message.no.grant"); +// +// if(memberIdx.equals(0)){ +// map.put("url", "/"+siteIdx+"/index.do"); +// }else{ +// map.put("self", "history"); +// } +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + + boolean b_ret = true; + b_ret = FairnetUtils.hasUserAuth(memberIdx, memberGrant, memberAuth, session, map); + + if (!b_ret) { + return new ModelAndView("/_common/jsp/message"); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + return new ModelAndView("/_common/jsp/umessage"); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + /*서비스 로직*/ + try{ + + + //접수마스터 UPDATE + service.rceptmstUpdate(paramMap); + + //신청인정보 INSERT + /*업데이트전 폼 삭제된 피신청인 db에서 제거*/ + String appDelSeq = SeedUtils.setReplaceNull(paramMap.get("appDelSeq")); + String[] delSeqList2 = null; + if(!appDelSeq.equals("")){ + delSeqList2 = appDelSeq.split(","); + + for(int i = 0; i < delSeqList2.length; i++){ + System.out.println("delSeqList2[i]:" + delSeqList2[i]); + paramMap.put("seqNo", delSeqList2[i]); + service.applcntDelete(paramMap); + } + } + + /*수정시 이미 존재하는 신청인 갯수*/ + String tempDataCnt2 = SeedUtils.setReplaceNull(paramMap.get("existDataCnt2")); + int existDataCnt2 = 0; + if(!tempDataCnt2.equals("")){ + existDataCnt2 = Integer.parseInt(tempDataCnt2); + } + + int appCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("appCnt"))); + for(int i = 1; i <= appCnt; i++){ + + paramMap.put("applcntCompany", paramMap.get("applcntCompany_"+i)); + paramMap.put("companyCeo", paramMap.get("companyCeo_"+i)); + paramMap.put("companyGubun", paramMap.get("companyGubun_"+i)); + paramMap.put("addrZip", paramMap.get("addrZip_"+i)); + paramMap.put("addr1", paramMap.get("addr1_"+i)); + paramMap.put("addr2", paramMap.get("addr2_"+i)); + paramMap.put("roadAddr1", paramMap.get("roadAddr1_"+i)); + paramMap.put("roadAddr2", paramMap.get("roadAddr2_"+i)); + + String tel1 = SeedUtils.setReplaceNull(paramMap.get("tel1_"+i)); + String tel2 = SeedUtils.setReplaceNull(paramMap.get("tel2_"+i)); + String tel3 = SeedUtils.setReplaceNull(paramMap.get("tel3_"+i)); + String tel = tel1 + "-" + tel2 + "-" + tel3; + paramMap.put("tel", tel); + + String fax1 = SeedUtils.setReplaceNull(paramMap.get("fax1_"+i)); + String fax2 = SeedUtils.setReplaceNull(paramMap.get("fax2_"+i)); + String fax3 = SeedUtils.setReplaceNull(paramMap.get("fax3_"+i)); + String fax = fax1 + "-" + fax2 + "-" + fax3; + paramMap.put("fax", fax); + + paramMap.put("bizrNo", paramMap.get("bizrNo_"+i)); + paramMap.put("cprNo", paramMap.get("cprNo_"+i)); + //existDataCnt2가 0보다 크면 피신청인 존재...UPDATE문으로 + if(existDataCnt2 > 0){ + //i가existDataCnt2와 같아지면 새로입력하는 신청인 + if(i <= existDataCnt2){ + String seqNo = (String)paramMap.get("seqNo2_"+i); + paramMap.put("seqNo", seqNo); + service.applcntUpdate(paramMap); + }else{ + service.applcntInsert(paramMap); + } + }else{ + service.applcntInsert(paramMap); + } + } + + //피신청인정보 INSERT + /*업데이트전 폼 삭제된 피신청인 db에서 제거*/ + String resDelSeq = SeedUtils.setReplaceNull(paramMap.get("resDelSeq")); + String[] delSeqList = null; + if(!resDelSeq.equals("")){ + delSeqList = resDelSeq.split(","); + + for(int i = 0; i < delSeqList.length; i++){ + System.out.println("delSeqList[i]:" + delSeqList[i]); + paramMap.put("seqNo", delSeqList[i]); + service.resDelete(paramMap); + } + } + + /*수정시 이미 존재하는 피신청인 갯수*/ + String tempDataCnt = SeedUtils.setReplaceNull(paramMap.get("existDataCnt")); + int existDataCnt = 0; + if(!tempDataCnt.equals("")){ + existDataCnt = Integer.parseInt(tempDataCnt); + } + + int recCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("recCnt"))); + for(int i = 1; i <= recCnt; i++){ + + paramMap.put("resCompany", paramMap.get("resCompany_"+i)); + paramMap.put("resCeo", paramMap.get("resCeo_"+i)); + paramMap.put("resGunbun", paramMap.get("resGunbun_"+i)); + paramMap.put("resZip", paramMap.get("resZip_"+i)); + paramMap.put("resAddr1", paramMap.get("resAddr1_"+i)); + paramMap.put("resAddr2", paramMap.get("resAddr2_"+i)); + paramMap.put("resRoadAddr1", paramMap.get("resRoadAddr1_"+i)); + paramMap.put("resRoadAddr2", paramMap.get("resRoadAddr2_"+i)); + + String resTel1 = SeedUtils.setReplaceNull(paramMap.get("resTel1_"+i)); + String resTel2 = SeedUtils.setReplaceNull(paramMap.get("resTel2_"+i)); + String resTel3 = SeedUtils.setReplaceNull(paramMap.get("resTel3_"+i)); + String resTel = resTel1 + "-" + resTel2 + "-" + resTel3; + paramMap.put("resTel", resTel); + + String resFax1 = SeedUtils.setReplaceNull(paramMap.get("resFax1_"+i)); + String resFax2 = SeedUtils.setReplaceNull(paramMap.get("resFax2_"+i)); + String resFax3 = SeedUtils.setReplaceNull(paramMap.get("resFax3_"+i)); + String resFax = resFax1 + "-" + resFax2 + "-" +resFax3; + paramMap.put("resFax", resFax); + + paramMap.put("resBizrNo", paramMap.get("resBizrNo_"+i)); + paramMap.put("resCprNo", paramMap.get("resCprNo_"+i)); + //existDataCnt가 0보다 크면 피신청인 존재...UPDATE문으로 + if(existDataCnt > 0){ + //i가existDataCnt와 같아지면 새로입력하는 피신청인 + if(i <= existDataCnt){ + String seqNo = (String)paramMap.get("seqNo_"+i); + paramMap.put("seqNo", seqNo); + service.resUpdate(paramMap); + }else{ + service.resInsert(paramMap); + } + }else{ + service.resInsert(paramMap); + } + } + + // 대리인정보 INSERT + String tel1 = SeedUtils.setReplaceNull(paramMap.get("agentHp01")); + String tel2 = SeedUtils.setReplaceNull(paramMap.get("agentHp02")); + String tel3 = SeedUtils.setReplaceNull(paramMap.get("agentHp03")); + String tel = tel1 + "-" + tel2 + "-" + tel3; + + paramMap.put("agentHp", tel); + service.agentUpdate(paramMap); + + // 사건현황, 협의회별 상세 현황 INSERT + + //콤마 제거하기 + paramMap.put("rceCapital", paramMap.get("rceCapital").toString().replaceAll(",", "")); + paramMap.put("rceTotAssets", paramMap.get("rceTotAssets").toString().replaceAll(",", "")); + paramMap.put("rceTotSales", paramMap.get("rceTotSales").toString().replaceAll(",", "")); + paramMap.put("rceBp", paramMap.get("rceBp").toString().replaceAll(",", "")); + + String rcePh1 = SeedUtils.setReplaceNull(paramMap.get("rcePh1")); + String rcePh2 = SeedUtils.setReplaceNull(paramMap.get("rcePh2")); + String rcePh3 = SeedUtils.setReplaceNull(paramMap.get("rcePh3")); + String rcePh = rcePh1 + "-" + rcePh2 + "-" + rcePh3; + paramMap.put("rcePh", rcePh); + + String rceFax1 = SeedUtils.setReplaceNull(paramMap.get("rceFax1")); + String rceFax2 = SeedUtils.setReplaceNull(paramMap.get("rceFax2")); + String rceFax3 = SeedUtils.setReplaceNull(paramMap.get("rceFax3")); + String rceFax = rceFax1 + "-" + rceFax2 + "-" + rceFax3; + paramMap.put("rceFax", rceFax); + + paramMap.put("joiningAmount", SeedUtils.setReplaceNull(paramMap.get("joiningAmount")).toString().replaceAll(",", "")); + paramMap.put("joiningAmount", SeedUtils.setReplaceNull(paramMap.get("joiningAmount")).toString().replaceAll(",", "")); + + paramMap.put("subCntrAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrAmount")).toString().replaceAll(",", "")); + paramMap.put("distbTotSales", SeedUtils.setReplaceNull(paramMap.get("distbTotSales")).toString().replaceAll(",", "")); + + service.rceUpdate(paramMap); + + fileService.fileInsert(paramMap, request, session); + fileService.caseFileDel(paramMap); + + + // 하도급내역 UPDATE + + /*업데이트전 폼 삭제된 내역 db에서 제거*/ + String subCntrDelSeq = SeedUtils.setReplaceNull(paramMap.get("subCntrDelSeq")); + String[] subCntrSeqList = null; + if(!subCntrDelSeq.equals("")){ + subCntrSeqList = subCntrDelSeq.split(","); + + for(int i = 0; i < subCntrSeqList.length; i++){ + paramMap.put("seqNo", subCntrSeqList[i]); + service.subCntrDelete(paramMap); + } + } + /*end*/ + + String tempaCnt = SeedUtils.setReplaceNull(paramMap.get("aCnt")); + String tempExistASubCntrData = SeedUtils.setReplaceNull(paramMap.get("existASubCntrData")); + int aCnt = 0; + int existASubCntrData = 0; + if(!tempaCnt.equals("")){ + aCnt = Integer.parseInt(tempaCnt); + } + if(!tempExistASubCntrData.equals("")){ + existASubCntrData = Integer.parseInt(tempExistASubCntrData); + } + + paramMap.put("cntrGubun", "A"); + for(int i = 1; i <= aCnt; i++){ + paramMap.put("subCntrCubun", SeedUtils.setReplaceNull(paramMap.get("subCntrCubun_"+i))); + paramMap.put("subCntrDt", SeedUtils.setReplaceNull(paramMap.get("subCntrDt_"+i))); + paramMap.put("subCntrSttAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrCashDt", SeedUtils.setReplaceNull(paramMap.get("subCntrCashDt_"+i))); + paramMap.put("subCntrCashAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrCashAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrBillPayDay", SeedUtils.setReplaceNull(paramMap.get("subCntrBillPayDay_"+i))); + paramMap.put("subCntrBillLimit", SeedUtils.setReplaceNull(paramMap.get("subCntrBillLimit_"+i))); + paramMap.put("subCntrBillAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrBillAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrTotAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrTotAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNonPayment", SeedUtils.setReplaceNull(paramMap.get("subCntrNonPayment_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNote", SeedUtils.setReplaceNull(paramMap.get("subCntrNote_"+i))); + + if(i <= existASubCntrData){ + paramMap.put("seqNo", SeedUtils.setReplaceNull(paramMap.get("subCntrSeqNoA_"+i))); + service.subCntrUpdate(paramMap); + }else{ + service.subCntrInsert(paramMap); + } + } + + String temprCnt = SeedUtils.setReplaceNull(paramMap.get("rCnt")); + String tempExistRSubCntrData = SeedUtils.setReplaceNull(paramMap.get("existRSubCntrData")); + int rCnt = 0; + int existRSubCntrData = 0; + if(!temprCnt.equals("")){ + rCnt = Integer.parseInt(temprCnt); + } + if(!tempExistRSubCntrData.equals("")){ + existRSubCntrData = Integer.parseInt(tempExistRSubCntrData); + } + + paramMap.put("cntrGubun", "R"); + for(int i = 1; i <= rCnt; i++){ + paramMap.put("subCntrCubun", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCubun_"+i))); + paramMap.put("subCntrDt", SeedUtils.setReplaceNull(paramMap.get("r_subCntrDt_"+i))); + paramMap.put("subCntrSttAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrCashDt", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCashDt_"+i))); + paramMap.put("subCntrCashAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCashAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrBillPayDay", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillPayDay_"+i))); + paramMap.put("subCntrBillLimit", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillLimit_"+i))); + paramMap.put("subCntrBillAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrTotAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrTotAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNonPayment", SeedUtils.setReplaceNull(paramMap.get("r_subCntrNonPayment_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNote", SeedUtils.setReplaceNull(paramMap.get("r_subCntrNote_"+i))); + + + if(i <= existRSubCntrData){ + paramMap.put("seqNo", SeedUtils.setReplaceNull(paramMap.get("subCntrSeqNoB_"+i))); + service.subCntrUpdate(paramMap); + }else{ + service.subCntrInsert(paramMap); + } + } + + service.reasonUpdate(paramMap); + + }catch (Exception e) { + log.error("CHECK ERROR:",e); + } + + + map.put("siteIdx", "case"); + map.put("url", "/user/mypage/case/01/169/myMediationList.do"); + map.put("message", "user.message.medi.temp"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ModelAndView("/_common/jsp/umessage"); + //return new ModelAndView("/_extra/web/user/mediation/mediationStep05"); + } + + + +// @RequestMapping("/web/user/mediation/{siteIdx}/05/{siteMenuIdx}/write.do") +// public ModelAndView setMediation(ModelMap map, HttpServletRequest request, HttpSession session, HttpServletRequest httpServletRequest, +// @RequestParam Map paramMap, +// @PathVariable(value="siteIdx") String siteIdx, +// @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + @RequestMapping("/web/user/mediation/{siteIdx}/05/{siteMenuIdx}/writeAjax.do") + public ResponseEntity writeAjax(ModelMap map, HttpServletRequest request, HttpSession session, HttpServletRequest httpServletRequest, + @RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); +// if(tempHpDi.equals("")){ +// map.put("siteIdx", "case"); +// map.put("url", "/case/index.do"); +// map.put("message", "user.message.medi.alert"); +// map.put("opener", ""); +// map.put("append", ""); +// map.put("self", ""); +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + + /*----권한체크----*/ + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); + + //메뉴 권한설정 +// if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && +// !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ +// +// map.put("message", "common.message.no.grant"); +// +// if(memberIdx.equals(0)){ +// map.put("url", "/"+siteIdx+"/index.do"); +// }else{ +// map.put("self", "history"); +// } +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + + boolean b_ret = true; + b_ret = FairnetUtils.hasUserAuth(memberIdx, memberGrant, memberAuth, session, map); + + if (!b_ret) { + /* return new ModelAndView("/_common/jsp/message"); */ + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + /* return new ModelAndView("/_common/jsp/umessage"); */ + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + /* return new ModelAndView("redirect:/user/common/service/"+siteIdx+".do"); */ + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ +// return new ModelAndView("redirect:"+SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuLinkUrl"))); + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + /*서비스 로직*/ + try{ + + paramMap.put("rceptNo", service.getNumber()); + map.put("rceptNo", paramMap.get("rceptNo")); + map.put("applcntCompany", paramMap.get("applcntCompany")); + + //접수마스터 INSERT + service.rceptmstInsert(paramMap); + + //신청인정보 INSERT +// int appCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("appCnt"))); + int appCnt; + if("".equals(SeedUtils.setReplaceNull(paramMap.get("appCnt")))) { + appCnt = 0; + }else { + appCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("appCnt"))); + } + for(int i = 1; i <= appCnt; i++){ + paramMap.put("applcntCompany", paramMap.get("applcntCompany_"+i)); + paramMap.put("companyCeo", paramMap.get("companyCeo_"+i)); + paramMap.put("companyGubun", paramMap.get("companyGubun_"+i)); + paramMap.put("addrZip", paramMap.get("addrZip_"+i)); + paramMap.put("addr1", paramMap.get("addr1_"+i)); + paramMap.put("addr2", paramMap.get("addr2_"+i)); + paramMap.put("roadAddr1", paramMap.get("roadAddr1_"+i)); + paramMap.put("roadAddr2", paramMap.get("roadAddr2_"+i)); + + String tel1 = SeedUtils.setReplaceNull(paramMap.get("tel1_"+i)); + String tel2 = SeedUtils.setReplaceNull(paramMap.get("tel2_"+i)); + String tel3 = SeedUtils.setReplaceNull(paramMap.get("tel3_"+i)); + String tel = tel1 + "-" + tel2 + "-" + tel3; + paramMap.put("tel", tel); + + String fax1 = SeedUtils.setReplaceNull(paramMap.get("fax1_"+i)); + String fax2 = SeedUtils.setReplaceNull(paramMap.get("fax2_"+i)); + String fax3 = SeedUtils.setReplaceNull(paramMap.get("fax3_"+i)); + String fax = fax1 + "-" + fax2 + "-" + fax3; + paramMap.put("fax", fax); + + paramMap.put("bizrNo", paramMap.get("bizrNo_"+i)); + paramMap.put("cprNo", paramMap.get("cprNo_"+i)); + service.applcntInsert(paramMap); + } + + //int k = 1/0; + + //피신청인정보 INSERT +// int recCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("recCnt"))); + int recCnt; + if("".equals(SeedUtils.setReplaceNull(paramMap.get("recCnt")))) { + recCnt = 0; + }else { + recCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("recCnt"))); + } + for(int i = 1; i <= recCnt; i++){ + paramMap.put("resCompany", paramMap.get("resCompany_"+i)); + paramMap.put("resCeo", paramMap.get("resCeo_"+i)); + paramMap.put("resGunbun", paramMap.get("resGunbun_"+i)); + paramMap.put("resZip", paramMap.get("resZip_"+i)); + paramMap.put("resAddr1", paramMap.get("resAddr1_"+i)); + paramMap.put("resAddr2", paramMap.get("resAddr2_"+i)); + paramMap.put("resRoadAddr1", paramMap.get("resRoadAddr1_"+i)); + paramMap.put("resRoadAddr2", paramMap.get("resRoadAddr2_"+i)); + + String resTel1 = SeedUtils.setReplaceNull(paramMap.get("resTel1_"+i)); + String resTel2 = SeedUtils.setReplaceNull(paramMap.get("resTel2_"+i)); + String resTel3 = SeedUtils.setReplaceNull(paramMap.get("resTel3_"+i)); + String resTel = resTel1 + "-" + resTel2 + "-" + resTel3; + paramMap.put("resTel", resTel); + + String resFax1 = SeedUtils.setReplaceNull(paramMap.get("resFax1_"+i)); + String resFax2 = SeedUtils.setReplaceNull(paramMap.get("resFax2_"+i)); + String resFax3 = SeedUtils.setReplaceNull(paramMap.get("resFax3_"+i)); + String resFax = resFax1+"-" + resFax2+"-" + resFax3; + paramMap.put("resFax", resFax); + + paramMap.put("resBizrNo", paramMap.get("resBizrNo_"+i)); + paramMap.put("resCprNo", paramMap.get("resCprNo_"+i)); + service.resInsert(paramMap); + } + + + // 대리인정보 INSERT + String tel1 = SeedUtils.setReplaceNull(paramMap.get("agentHp01")); + String tel2 = SeedUtils.setReplaceNull(paramMap.get("agentHp02")); + String tel3 = SeedUtils.setReplaceNull(paramMap.get("agentHp03")); + String tel = tel1 + "-" + tel2 + "-" + tel3; + + paramMap.put("agentHp", tel); + service.agentInsert(paramMap); + // 사건현황, 협의회별 상세 현황 INSERT + + //,제거하기 +// paramMap.put("rceCapital", paramMap.get("rceCapital").toString().replaceAll(",", "")); +// paramMap.put("rceTotAssets", paramMap.get("rceTotAssets").toString().replaceAll(",", "")); +// paramMap.put("rceTotSales", paramMap.get("rceTotSales").toString().replaceAll(",", "")); +// paramMap.put("rceBp", paramMap.get("rceBp").toString().replaceAll(",", "")); + + if(paramMap.get("rceCapital") != null) { + paramMap.put("rceCapital", paramMap.get("rceCapital").toString().replaceAll(",", "")); + } + if(paramMap.get("rceTotAssets") != null) { + paramMap.put("rceTotAssets", paramMap.get("rceTotAssets").toString().replaceAll(",", "")); + } + if(paramMap.get("rceTotSales") != null) { + paramMap.put("rceTotSales", paramMap.get("rceTotSales").toString().replaceAll(",", "")); + } + if(paramMap.get("rceBp") != null) { + paramMap.put("rceBp", paramMap.get("rceBp").toString().replaceAll(",", "")); + } + + String rcePh1 = SeedUtils.setReplaceNull(paramMap.get("rcePh1")); + String rcePh2 = SeedUtils.setReplaceNull(paramMap.get("rcePh2")); + String rcePh3 = SeedUtils.setReplaceNull(paramMap.get("rcePh3")); + String rcePh = rcePh1 + "-" + rcePh2 + "-" + rcePh3; + paramMap.put("rcePh", rcePh); + + String rceFax1 = SeedUtils.setReplaceNull(paramMap.get("rceFax1")); + String rceFax2 = SeedUtils.setReplaceNull(paramMap.get("rceFax2")); + String rceFax3 = SeedUtils.setReplaceNull(paramMap.get("rceFax3")); + String rceFax = rceFax1 + "-" + rceFax2 + "-" + rceFax3; + paramMap.put("rceFax", rceFax); + + paramMap.put("joiningAmount", SeedUtils.setReplaceNull(paramMap.get("joiningAmount")).toString().replaceAll(",", "")); + paramMap.put("joiningAmount", SeedUtils.setReplaceNull(paramMap.get("joiningAmount")).toString().replaceAll(",", "")); + + paramMap.put("subCntrAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrAmount")).toString().replaceAll(",", "")); + paramMap.put("distbTotSales", SeedUtils.setReplaceNull(paramMap.get("distbTotSales")).toString().replaceAll(",", "")); + + service.rceInsert(paramMap); + + if(!"".equals(SeedUtils.setReplaceNull(paramMap.get("fileFuncType")))) { + fileService.fileInsert(paramMap, request, session); + } + // 하도급내역 INSERT + + String tempaCnt = SeedUtils.setReplaceNull(paramMap.get("aCnt")); + int aCnt = 0; + if(!tempaCnt.equals("")){ + aCnt = Integer.parseInt(tempaCnt); + } + + paramMap.put("cntrGubun", "A"); + for(int i = 1; i <= aCnt; i++){ + paramMap.put("subCntrCubun", SeedUtils.setReplaceNull(paramMap.get("subCntrCubun_"+i))); + paramMap.put("subCntrDt", SeedUtils.setReplaceNull(paramMap.get("subCntrDt_"+i))); + paramMap.put("subCntrSttAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrCashDt", SeedUtils.setReplaceNull(paramMap.get("subCntrCashDt_"+i))); + paramMap.put("subCntrCashAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrCashAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrBillPayDay", SeedUtils.setReplaceNull(paramMap.get("subCntrBillPayDay_"+i))); + paramMap.put("subCntrBillLimit", SeedUtils.setReplaceNull(paramMap.get("subCntrBillLimit_"+i))); + paramMap.put("subCntrBillAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrBillAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrTotAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrTotAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNonPayment", SeedUtils.setReplaceNull(paramMap.get("subCntrNonPayment_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNote", SeedUtils.setReplaceNull(paramMap.get("subCntrNote_"+i))); + + service.subCntrInsert(paramMap); + } + + String temprCnt = SeedUtils.setReplaceNull(paramMap.get("rCnt")); + int rCnt = 0; + if(!temprCnt.equals("")){ + rCnt = Integer.parseInt(temprCnt); + } + + paramMap.put("cntrGubun", "R"); + for(int i = 1; i <= rCnt; i++){ + paramMap.put("subCntrCubun", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCubun_"+i))); + paramMap.put("subCntrDt", SeedUtils.setReplaceNull(paramMap.get("r_subCntrDt_"+i))); + paramMap.put("subCntrSttAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrCashDt", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCashDt_"+i))); + paramMap.put("subCntrCashAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCashAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrBillPayDay", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillPayDay_"+i))); + paramMap.put("subCntrBillLimit", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillLimit_"+i))); + paramMap.put("subCntrBillAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrTotAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrTotAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNonPayment", SeedUtils.setReplaceNull(paramMap.get("r_subCntrNonPayment_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNote", SeedUtils.setReplaceNull(paramMap.get("r_subCntrNote_"+i))); + + service.subCntrInsert(paramMap); + } + + service.reasonInsert(paramMap); + + paramMap.put("sts", "success"); + + }catch (Exception e) { + log.error("CHECK ERROR:",e); + paramMap.put("sts", "fail"); + } + + + map.put("siteIdx", "case"); + map.put("url", "/web/user/mypage/case/01/169/myMediationList.do"); + map.put("message", "user.message.medi.temp"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + +// return new ModelAndView("/_common/jsp/umessage"); + + return new ResponseEntity<>(paramMap, HttpStatus.OK); + //return new ModelAndView("/_extra/web/user/mediation/mediationStep05"); + } + + + @RequestMapping("/web/user/mediation/{siteIdx}/05/{siteMenuIdx}/updateAjax.do") + public ResponseEntity updateAjax(ModelMap map, HttpServletRequest request, HttpSession session,@RequestParam Map paramMap, + @PathVariable(value="siteIdx") String siteIdx, + @PathVariable(value="siteMenuIdx") Integer siteMenuIdx){ + + String tempHpDi = SeedUtils.setReplaceNull(session.getAttribute("hpDi")); + //String tempAgreeCheck = SeedUtils.setReplaceNull(session.getAttribute("agreeCheck")); +// if(tempHpDi.equals("") /*|| tempAgreeCheck.equals("")*/){ +// map.put("siteIdx", "case"); +// map.put("url", "/case/index.do"); +// map.put("message", "user.message.medi.expiration"); +// map.put("opener", ""); +// map.put("append", ""); +// map.put("self", ""); +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + + /*----권한체크----*/ + setSessionMessageRemove(session); + + Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); + String memberGrant = (memberIdx == 0) ? "N" : SeedUtils.setReplaceNull(managerMemberService.getMemberMapForm(memberIdx, new String[] {"memberGrant"}).get("_memberGrant"), "N"); + boolean memberAuthM = managerSiteManagerService.getSiteManagerListCnt(siteIdx, memberIdx); + boolean memberAuth = managerSiteMenuManagerService.getSiteMenuManagerListCnt(siteMenuIdx, memberIdx); + +// //메뉴 권한설정 +// if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && +// !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ +// +// map.put("message", "common.message.no.grant"); +// +// if(memberIdx.equals(0)){ +// map.put("url", "/"+siteIdx+"/index.do"); +// }else{ +// map.put("self", "history"); +// } +// +// return new ModelAndView("/_common/jsp/umessage"); +// } + + boolean b_ret = true; + b_ret = FairnetUtils.hasUserAuth(memberIdx, memberGrant, memberAuth, session, map); + + if (!b_ret) { + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + Map tSiteMenuDB = managerSiteMenuService.getSiteMenuMapForm(siteMenuIdx, + new String[] {"siteMenuName", "siteMenuParentTitle", "siteMenuStatus", "siteMenuType", "siteMenuLinkUrl", "siteMenuCharge", "siteMenuCharge", "siteMenuSNS", + "siteMenuTitle", "siteMenuRegDate", "siteMenuModDate", "siteMenuNameType", "siteMenuIdxs", "siteMenuDepth", "siteMenuSatisfaction", "siteMenuIdx1", + "tSite.siteActiveMenuWidth", "tSite.siteService", "tSite.siteServiceSdate", "tSite.siteServiceSdate"}); + + if(!memberGrant.equals("S") && !memberAuthM && !memberAuth){ + if(!SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuStatus")).equals("U")){ + map.put("message", "common.message.no.siteMenu"); + map.put("self", "history"); + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteService")).equals("Y")){ + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + + try{ + + Date getDate = new Date(); + + Date sDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceSdate"))); + Date eDate = formatter.parse(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteServiceEdate"))); + + if((sDate.compareTo(formatter.parse(formatter.format(getDate))) > 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) > 0) || + (sDate.compareTo(formatter.parse(formatter.format(getDate))) < 0 && eDate.compareTo(formatter.parse(formatter.format(getDate))) < 0)){ + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + }catch(ParseException e){ + log.error("CHECK ERROR:",e); + } + } + + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("F") || + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuType")).equals("L")){ + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + String siteMenuManager = "N"; + StringBuffer siteMenuManagerIdx = new StringBuffer(); + String siteMenuCharge = SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuCharge"), "N"); + + List> siteMenuManagerList = + managerSiteMenuManagerService.getSiteMenuManagerMapList(siteMenuIdx, new String[] {"siteMenuManagerStatus", "tMember.memberIdx"}); + + for(int i=0; i tSiteMenuManagerDB = siteMenuManagerList.get(i); + + if(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_siteMenuManagerStatus")).equals("U")){ + + if(!memberIdx.equals(0) && + memberIdx.equals(Integer.parseInt(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx"), "0"))) && + siteMenuManager.equals("N")){ + siteMenuManager = "Y"; + } + siteMenuManagerIdx.append(SeedUtils.setReplaceNull(tSiteMenuManagerDB.get("_memberIdx")).toString()); + siteMenuManagerIdx.append(","); + } + } + + if(memberGrant.equals("S") || memberAuthM){ + siteMenuManager = "Y"; + } + + //편집 권한 + map.put("siteMenuManager", siteMenuManager); + //담당자 보기 설정 + map.put("siteMenuCharge", siteMenuCharge); + //담당자 이름 + map.put("siteMenuManagerIdx", siteMenuManagerIdx.toString()); + //만족도 설정 + map.put("siteMenuSatisfaction", SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuSatisfaction"), "N")); + + map.put("siteMenuSubTitle", managerSiteMenuService.getSiteMenuSubTitleForm(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdx1")))); + + String siteMenuTitle = managerSiteMenuService.getSiteMenuParentName(siteIdx, SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuIdxs")), "edit").replaceAll("》", "|") + + " | " + SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuName")); + + map.put("siteMenuTitle", siteMenuTitle); + + //부모메뉴 타이틀 설정한 경우 해당 글의 부모 타이틀을 가져옴 + if(SeedUtils.setReplaceNull(tSiteMenuDB.get("_siteMenuParentTitle") ,"N").equals("Y")){ + String[] siteMenuTitles = siteMenuTitle.split("\\|"); + tSiteMenuDB.put("_siteMenuName", siteMenuTitles[Integer.parseInt(tSiteMenuDB.get("_siteMenuDepth").toString())-1]); + } + + map.put("tSiteMenuDB", tSiteMenuDB); + + map.put("memberAuthM", memberAuthM); + map.put("seedMenuAuth", managerGroupService.getGroupList(siteIdx, memberIdx, memberMerge, memberMergeSiteIdx)); + /*----권한체크 종료----*/ + + /*서비스 로직*/ + try{ + + + //접수마스터 UPDATE + service.rceptmstUpdate(paramMap); + + //신청인정보 INSERT + /*업데이트전 폼 삭제된 피신청인 db에서 제거*/ + String appDelSeq = SeedUtils.setReplaceNull(paramMap.get("appDelSeq")); + String[] delSeqList2 = null; + if(!appDelSeq.equals("")){ + delSeqList2 = appDelSeq.split(","); + + for(int i = 0; i < delSeqList2.length; i++){ + System.out.println("delSeqList2[i]:" + delSeqList2[i]); + paramMap.put("seqNo", delSeqList2[i]); + service.applcntDelete(paramMap); + } + } + + /*수정시 이미 존재하는 신청인 갯수*/ + String tempDataCnt2 = SeedUtils.setReplaceNull(paramMap.get("existDataCnt2")); + int existDataCnt2 = 0; + if(!tempDataCnt2.equals("")){ + existDataCnt2 = Integer.parseInt(tempDataCnt2); + } + +// int appCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("appCnt"))); + int appCnt; + if("".equals(SeedUtils.setReplaceNull(paramMap.get("appCnt")))) { + appCnt = 0; + }else { + appCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("appCnt"))); + } + for(int i = 1; i <= appCnt; i++){ + + paramMap.put("applcntCompany", paramMap.get("applcntCompany_"+i)); + paramMap.put("companyCeo", paramMap.get("companyCeo_"+i)); + paramMap.put("companyGubun", paramMap.get("companyGubun_"+i)); + paramMap.put("addrZip", paramMap.get("addrZip_"+i)); + paramMap.put("addr1", paramMap.get("addr1_"+i)); + paramMap.put("addr2", paramMap.get("addr2_"+i)); + paramMap.put("roadAddr1", paramMap.get("roadAddr1_"+i)); + paramMap.put("roadAddr2", paramMap.get("roadAddr2_"+i)); + + String tel1 = SeedUtils.setReplaceNull(paramMap.get("tel1_"+i)); + String tel2 = SeedUtils.setReplaceNull(paramMap.get("tel2_"+i)); + String tel3 = SeedUtils.setReplaceNull(paramMap.get("tel3_"+i)); + String tel = tel1 + "-" + tel2 + "-" + tel3; + paramMap.put("tel", tel); + + String fax1 = SeedUtils.setReplaceNull(paramMap.get("fax1_"+i)); + String fax2 = SeedUtils.setReplaceNull(paramMap.get("fax2_"+i)); + String fax3 = SeedUtils.setReplaceNull(paramMap.get("fax3_"+i)); + String fax = fax1 + "-" + fax2 + "-" + fax3; + paramMap.put("fax", fax); + + paramMap.put("bizrNo", paramMap.get("bizrNo_"+i)); + paramMap.put("cprNo", paramMap.get("cprNo_"+i)); + //existDataCnt2가 0보다 크면 피신청인 존재...UPDATE문으로 + if(existDataCnt2 > 0){ + //i가existDataCnt2와 같아지면 새로입력하는 신청인 + if(i <= existDataCnt2){ + String seqNo = (String)paramMap.get("seqNo2_"+i); + paramMap.put("seqNo", seqNo); + service.applcntUpdate(paramMap); + }else{ + service.applcntInsert(paramMap); + } + }else{ + service.applcntInsert(paramMap); + } + } + + //피신청인정보 INSERT + /*업데이트전 폼 삭제된 피신청인 db에서 제거*/ + String resDelSeq = SeedUtils.setReplaceNull(paramMap.get("resDelSeq")); + String[] delSeqList = null; + if(!resDelSeq.equals("")){ + delSeqList = resDelSeq.split(","); + + for(int i = 0; i < delSeqList.length; i++){ + System.out.println("delSeqList[i]:" + delSeqList[i]); + paramMap.put("seqNo", delSeqList[i]); + service.resDelete(paramMap); + } + } + + /*수정시 이미 존재하는 피신청인 갯수*/ + String tempDataCnt = SeedUtils.setReplaceNull(paramMap.get("existDataCnt")); + int existDataCnt = 0; + if(!tempDataCnt.equals("")){ + existDataCnt = Integer.parseInt(tempDataCnt); + } + +// int recCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("recCnt"))); + + int recCnt; + if("".equals(SeedUtils.setReplaceNull(paramMap.get("recCnt")))) { + recCnt = 0; + }else { + recCnt = Integer.parseInt(SeedUtils.setReplaceNull(paramMap.get("recCnt"))); + } + + for(int i = 1; i <= recCnt; i++){ + + paramMap.put("resCompany", paramMap.get("resCompany_"+i)); + paramMap.put("resCeo", paramMap.get("resCeo_"+i)); + paramMap.put("resGunbun", paramMap.get("resGunbun_"+i)); + paramMap.put("resZip", paramMap.get("resZip_"+i)); + paramMap.put("resAddr1", paramMap.get("resAddr1_"+i)); + paramMap.put("resAddr2", paramMap.get("resAddr2_"+i)); + paramMap.put("resRoadAddr1", paramMap.get("resRoadAddr1_"+i)); + paramMap.put("resRoadAddr2", paramMap.get("resRoadAddr2_"+i)); + + String resTel1 = SeedUtils.setReplaceNull(paramMap.get("resTel1_"+i)); + String resTel2 = SeedUtils.setReplaceNull(paramMap.get("resTel2_"+i)); + String resTel3 = SeedUtils.setReplaceNull(paramMap.get("resTel3_"+i)); + String resTel = resTel1 + "-" + resTel2 + "-" + resTel3; + paramMap.put("resTel", resTel); + + String resFax1 = SeedUtils.setReplaceNull(paramMap.get("resFax1_"+i)); + String resFax2 = SeedUtils.setReplaceNull(paramMap.get("resFax2_"+i)); + String resFax3 = SeedUtils.setReplaceNull(paramMap.get("resFax3_"+i)); + String resFax = resFax1 + "-" + resFax2 + "-" +resFax3; + paramMap.put("resFax", resFax); + + paramMap.put("resBizrNo", paramMap.get("resBizrNo_"+i)); + paramMap.put("resCprNo", paramMap.get("resCprNo_"+i)); + //existDataCnt가 0보다 크면 피신청인 존재...UPDATE문으로 + if(existDataCnt > 0){ + //i가existDataCnt와 같아지면 새로입력하는 피신청인 + if(i <= existDataCnt){ + String seqNo = (String)paramMap.get("seqNo_"+i); + paramMap.put("seqNo", seqNo); + service.resUpdate(paramMap); + }else{ + service.resInsert(paramMap); + } + }else{ + service.resInsert(paramMap); + } + } + + // 대리인정보 INSERT + String tel1 = SeedUtils.setReplaceNull(paramMap.get("agentHp01")); + String tel2 = SeedUtils.setReplaceNull(paramMap.get("agentHp02")); + String tel3 = SeedUtils.setReplaceNull(paramMap.get("agentHp03")); + String tel = tel1 + "-" + tel2 + "-" + tel3; + + paramMap.put("agentHp", tel); + service.agentUpdate(paramMap); + + // 사건현황, 협의회별 상세 현황 INSERT + + //콤마 제거하기 +// paramMap.put("rceCapital", paramMap.get("rceCapital").toString().replaceAll(",", "")); +// paramMap.put("rceTotAssets", paramMap.get("rceTotAssets").toString().replaceAll(",", "")); +// paramMap.put("rceTotSales", paramMap.get("rceTotSales").toString().replaceAll(",", "")); +// paramMap.put("rceBp", paramMap.get("rceBp").toString().replaceAll(",", "")); + + if(paramMap.get("rceCapital") != null) { + paramMap.put("rceCapital", paramMap.get("rceCapital").toString().replaceAll(",", "")); + } + if(paramMap.get("rceTotAssets") != null) { + paramMap.put("rceTotAssets", paramMap.get("rceTotAssets").toString().replaceAll(",", "")); + } + if(paramMap.get("rceTotSales") != null) { + paramMap.put("rceTotSales", paramMap.get("rceTotSales").toString().replaceAll(",", "")); + } + if(paramMap.get("rceBp") != null) { + paramMap.put("rceBp", paramMap.get("rceBp").toString().replaceAll(",", "")); + } + + String rcePh1 = SeedUtils.setReplaceNull(paramMap.get("rcePh1")); + String rcePh2 = SeedUtils.setReplaceNull(paramMap.get("rcePh2")); + String rcePh3 = SeedUtils.setReplaceNull(paramMap.get("rcePh3")); + String rcePh = rcePh1 + "-" + rcePh2 + "-" + rcePh3; + paramMap.put("rcePh", rcePh); + + String rceFax1 = SeedUtils.setReplaceNull(paramMap.get("rceFax1")); + String rceFax2 = SeedUtils.setReplaceNull(paramMap.get("rceFax2")); + String rceFax3 = SeedUtils.setReplaceNull(paramMap.get("rceFax3")); + String rceFax = rceFax1 + "-" + rceFax2 + "-" + rceFax3; + paramMap.put("rceFax", rceFax); + + paramMap.put("joiningAmount", SeedUtils.setReplaceNull(paramMap.get("joiningAmount")).toString().replaceAll(",", "")); + paramMap.put("joiningAmount", SeedUtils.setReplaceNull(paramMap.get("joiningAmount")).toString().replaceAll(",", "")); + + paramMap.put("subCntrAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrAmount")).toString().replaceAll(",", "")); + paramMap.put("distbTotSales", SeedUtils.setReplaceNull(paramMap.get("distbTotSales")).toString().replaceAll(",", "")); + + service.rceUpdate(paramMap); + + if(!"".equals(SeedUtils.setReplaceNull(paramMap.get("fileFuncType")))) { + fileService.fileInsert(paramMap, request, session); + } +// fileService.fileInsert(paramMap, request, session); + fileService.caseFileDel(paramMap); + + + // 하도급내역 UPDATE + + /*업데이트전 폼 삭제된 내역 db에서 제거*/ + String subCntrDelSeq = SeedUtils.setReplaceNull(paramMap.get("subCntrDelSeq")); + String[] subCntrSeqList = null; + if(!subCntrDelSeq.equals("")){ + subCntrSeqList = subCntrDelSeq.split(","); + + for(int i = 0; i < subCntrSeqList.length; i++){ + paramMap.put("seqNo", subCntrSeqList[i]); + service.subCntrDelete(paramMap); + } + } + /*end*/ + + String tempaCnt = SeedUtils.setReplaceNull(paramMap.get("aCnt")); + String tempExistASubCntrData = SeedUtils.setReplaceNull(paramMap.get("existASubCntrData")); + int aCnt = 0; + int existASubCntrData = 0; + if(!tempaCnt.equals("")){ + aCnt = Integer.parseInt(tempaCnt); + } + if(!tempExistASubCntrData.equals("")){ + existASubCntrData = Integer.parseInt(tempExistASubCntrData); + } + + paramMap.put("cntrGubun", "A"); + for(int i = 1; i <= aCnt; i++){ + paramMap.put("subCntrCubun", SeedUtils.setReplaceNull(paramMap.get("subCntrCubun_"+i))); + paramMap.put("subCntrDt", SeedUtils.setReplaceNull(paramMap.get("subCntrDt_"+i))); + paramMap.put("subCntrSttAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrCashDt", SeedUtils.setReplaceNull(paramMap.get("subCntrCashDt_"+i))); + paramMap.put("subCntrCashAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrCashAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrBillPayDay", SeedUtils.setReplaceNull(paramMap.get("subCntrBillPayDay_"+i))); + paramMap.put("subCntrBillLimit", SeedUtils.setReplaceNull(paramMap.get("subCntrBillLimit_"+i))); + paramMap.put("subCntrBillAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrBillAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrTotAmount", SeedUtils.setReplaceNull(paramMap.get("subCntrTotAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNonPayment", SeedUtils.setReplaceNull(paramMap.get("subCntrNonPayment_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNote", SeedUtils.setReplaceNull(paramMap.get("subCntrNote_"+i))); + + if(i <= existASubCntrData){ + paramMap.put("seqNo", SeedUtils.setReplaceNull(paramMap.get("subCntrSeqNoA_"+i))); + service.subCntrUpdate(paramMap); + }else{ + service.subCntrInsert(paramMap); + } + } + + String temprCnt = SeedUtils.setReplaceNull(paramMap.get("rCnt")); + String tempExistRSubCntrData = SeedUtils.setReplaceNull(paramMap.get("existRSubCntrData")); + int rCnt = 0; + int existRSubCntrData = 0; + if(!temprCnt.equals("")){ + rCnt = Integer.parseInt(temprCnt); + } + if(!tempExistRSubCntrData.equals("")){ + existRSubCntrData = Integer.parseInt(tempExistRSubCntrData); + } + + paramMap.put("cntrGubun", "R"); + for(int i = 1; i <= rCnt; i++){ + paramMap.put("subCntrCubun", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCubun_"+i))); + paramMap.put("subCntrDt", SeedUtils.setReplaceNull(paramMap.get("r_subCntrDt_"+i))); + paramMap.put("subCntrSttAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrCashDt", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCashDt_"+i))); + paramMap.put("subCntrCashAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrCashAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrBillPayDay", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillPayDay_"+i))); + paramMap.put("subCntrBillLimit", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillLimit_"+i))); + paramMap.put("subCntrBillAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrBillAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrTotAmount", SeedUtils.setReplaceNull(paramMap.get("r_subCntrTotAmount_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNonPayment", SeedUtils.setReplaceNull(paramMap.get("r_subCntrNonPayment_"+i)).toString().replaceAll(",", "")); + paramMap.put("subCntrNote", SeedUtils.setReplaceNull(paramMap.get("r_subCntrNote_"+i))); + + + if(i <= existRSubCntrData){ + paramMap.put("seqNo", SeedUtils.setReplaceNull(paramMap.get("subCntrSeqNoB_"+i))); + service.subCntrUpdate(paramMap); + }else{ + service.subCntrInsert(paramMap); + } + } + + service.reasonUpdate(paramMap); + paramMap.put("sts", "success"); + + }catch (Exception e) { + log.error("CHECK ERROR:",e); + paramMap.put("sts", "fail"); + return new ResponseEntity<>(paramMap, HttpStatus.OK); + } + + + map.put("siteIdx", "case"); + map.put("url", "/user/mypage/case/01/169/myMediationList.do"); + map.put("message", "user.message.medi.temp"); + map.put("opener", ""); + map.put("append", ""); + map.put("self", ""); + + return new ResponseEntity<>(paramMap, HttpStatus.OK); + //return new ModelAndView("/_extra/web/user/mediation/mediationStep05"); + } } diff --git a/src/main/resources/egovframework/sqlmap/config/mappers/mediation/mediation_sql.xml b/src/main/resources/egovframework/sqlmap/config/mappers/mediation/mediation_sql.xml new file mode 100644 index 00000000..502d8fd5 --- /dev/null +++ b/src/main/resources/egovframework/sqlmap/config/mappers/mediation/mediation_sql.xml @@ -0,0 +1,1286 @@ + + + + + + + + + + INSERT INTO C_RCEPTMST( + RCEPT_NO, + DOC_GUBUN, + APPLCNT_CI, + APPLCNT_DI, + APPLCNT_NM, + APPLCNT_BIRTHDAY, + CASE_GUBUN, + AGREE_CHECK, + PERSONAL_CHECK, + CASE_REASON1, + CASE_REASON2, + CASE_REASON3, + REQUEST_CHECK, + STATE, + PRESIDENT_ASSIGN, + PRESIDENT_ASSIGN_DT, + SCCHF_ASSIGN, + SCCHF_ASSIGN_DT, + TIMHDER_ASSIGN, + TIMHDER_ASSIGN_DT, + EXAMINER_ASSIGN, + REG_DT, + REG_ID, + MOD_DT, + MOD_ID, + DEL_GUBUN, + DOC_CHECK + + ,FTC_CHECK + + ) VALUES ( + #{rceptNo}, + '0101000000', /* 문서접수구분 코드값(온라인) */ + #{hpCi1}, + #{hpDi}, + #{hpName}, + #{hpBirYMD}, + #{caseGubun}, + #{agreeCheck}, + #{personalCheck}, + #{caseReason1}, + + #{caseReason2}, + '', + + + #{caseReason3}, + '', + + #{requestCheck}, + '0301000000', + '', + '', + '', + '', + '', + '', + '', + SYSDATE, + '', + '', + '', + 'N', + '5101000000' + + , 'N' + + ) + + + + INSERT INTO C_APPLCNT( + RCEPT_NO, + SEQ_NO, + APPLCNT_COMPANY, + COMPANY_CEO, + COMPANY_GUBUN, + ZIP, + ADDR1, + ADDR2, + ROAD_ADDR1, + ROAD_ADDR2, + TEL, + FAX, + BIZR_NO, + CPR_NO, + FILE_NO + ) VALUES ( + #{rceptNo}, + C_APPLCNT_SEQ.NEXTVAL, + #{applcntCompany}, + #{companyCeo}, + #{companyGubun}, + #{addrZip}, + #{addr1}, + #{addr2}, + #{roadAddr1}, + #{roadAddr2}, + #{tel}, + #{fax}, + #{bizrNo}, + #{cprNo}, + '' + ) + + + + INSERT INTO C_APPAGENT( + RCEPT_NO, + SEQ_NO, + AGENT_COMPANY, + AGENT_CEO, + AGENT_TEL, + AGENT_HP, + AGENT_EMAIL, + SPECIAL_TXT, + ZIP, + ADDR1, + ADDR2, + ROAD_ADDR1, + ROAD_ADDR2 + ) VALUES ( + #{rceptNo}, + C_APPAGENT_SEQ.NEXTVAL, + #{agentCompany}, + #{agentCeo}, + #{agentTel}, + #{agentHp}, + #{agentEmail}, + '', + #{agentZip}, + #{agentAddr1}, + #{agentAddr2}, + #{agentRoadAddr1}, + #{agentRoadAddr2} + ) + + + + INSERT INTO C_RESPONDENT( + RCEPT_NO, + SEQ_NO, + RESPONDENT_COMPANY, + RESPONDENT_CEO, + RESPONDENT_GUBUN, + ZIP, + ADDR1, + ADDR2, + ROAD_ADDR1, + ROAD_ADDR2, + TEL, + FAX, + BIZR_NO, + CPR_NO, + FILE_NO + ) VALUES ( + #{rceptNo}, + C_RESPONDENT_SEQ.NEXTVAL, + #{resCompany}, + #{resCeo}, + #{resGunbun}, + #{resZip}, + #{resAddr1}, + #{resAddr2}, + #{resRoadAddr1}, + #{resRoadAddr2}, + #{resTel}, + #{resFax}, + #{resBizrNo}, + #{resCprNo}, + '' + ) + + + + INSERT INTO C_RCEPTSTTUS( + RCEPT_NO, + CAPITAL, + TOTAL_ASSETS, + TOTAL_SALES, + BUSINESS_PROFITS, + FIRST_CONTRACT_DT, + START_CONTRACT, + END_CONTRACT, + CONTRACT_FILE, + PERSON_CHARGE, + CONTACT_TEL, + CONTACT_HP, + CONTACT_FAX, + CONTACT_OFCPS, + CONTACT_EMAIL, + LAWSUIT_CHECK, + CONFERENCE_RESULT, + ARBITRATION_CHECK, + REGULATING_ORGAN, + FTC_INVESTIGATION, + APPLICATION_OBJ, + APPLICATION_REASON, + SUBCNTR_NUM, + SUBCNTR_GUBUN, + SUBCNTR_CON, + SUBCNTR_AMOUNT, + MRHST_NUM, + MRHST_TYPE, + MRHST_BRAND_NM, + MRHST_INFO_CHECK, + MRHST_BALANCE_CHECK, + MRHST_NAME, + MRHST_START_CONTRACT, + MRHST_END_CONTRACT, + MRHST_FIRST_CONTRACT_DT, + MRHST_INFO_DT, + JOINING_AMOUNT, + JOINING_AMOUNT_DT, + JOINING_AMOUNT_BALANCE, + JOINING_AMOUNT_ORG, + DISTB_NUM, + DISTB_MAK_SHARE, + DISTB_SHOP_GROSSAREA, + DISTB_TOTAL_SALES, + DISTB_FTC, + LAWSUT_NOTE, + ARBITRATION_NOTE, + CONFERENCE_NOTE, + REGULATING_NOTE, + FTC_NOTE + ) VALUES ( + #{rceptNo, jdbcType=VARCHAR}, + #{rceCapital, jdbcType=VARCHAR}, + #{rceTotAssets, jdbcType=VARCHAR}, + #{rceTotSales, jdbcType=VARCHAR}, + #{rceBp, jdbcType=VARCHAR}, + #{rceFirstContract, jdbcType=VARCHAR}, + #{rceStartContract, jdbcType=VARCHAR}, + #{rceEndContract, jdbcType=VARCHAR}, + '', + #{rcePersonCharge, jdbcType=VARCHAR}, + #{rceTel, jdbcType=VARCHAR}, + #{rcePh, jdbcType=VARCHAR}, + #{rceFax, jdbcType=VARCHAR}, + #{rceOfcps, jdbcType=VARCHAR}, + #{rceEmail, jdbcType=VARCHAR}, + #{rceLawCheck, jdbcType=VARCHAR}, + #{rceConferenceResult, jdbcType=VARCHAR}, + #{rceArbCheck, jdbcType=VARCHAR}, + #{rceRegulatingOrgan, jdbcType=VARCHAR}, + #{rceFtcInvestigation, jdbcType=VARCHAR}, + #{editorParam_rceAppObj, jdbcType=VARCHAR}, + #{editorParam_rceAppReason, jdbcType=VARCHAR}, + #{subcntrNum, jdbcType=INTEGER}, + #{subcntrGubun, jdbcType=VARCHAR}, + #{subcntrCon, jdbcType=VARCHAR}, + #{subCntrAmount, jdbcType=VARCHAR}, + #{mrhstNum, jdbcType=INTEGER}, + #{mrhstType, jdbcType=VARCHAR}, + #{mrhstBrand, jdbcType=VARCHAR}, + #{mrhstInfoCheck, jdbcType=VARCHAR}, + #{mrhstBalance, jdbcType=VARCHAR}, + #{mrhstName, jdbcType=VARCHAR}, + #{mrhstStart, jdbcType=VARCHAR}, + #{mrhstEnd, jdbcType=VARCHAR}, + #{mrhstFirst, jdbcType=VARCHAR}, + #{mrhstInfoDt, jdbcType=VARCHAR}, + #{joiningAmount, jdbcType=VARCHAR}, + #{joiningAmountDt, jdbcType=VARCHAR}, + #{joiningAmountBalance, jdbcType=VARCHAR}, + #{joiningAmountOrg, jdbcType=VARCHAR}, + #{distbNum, jdbcType=INTEGER}, + #{distbMakShare, jdbcType=VARCHAR}, + #{distbShopGrossarea, jdbcType=VARCHAR}, + #{distbTotSales, jdbcType=VARCHAR}, + #{distbFtc, jdbcType=VARCHAR}, + #{rceLawNot, jdbcType=VARCHAR}, + #{rceArbNote, jdbcType=VARCHAR}, + #{rceConferenceResultNot, jdbcType=VARCHAR}, + #{rceRegulatingOrganNote, jdbcType=VARCHAR}, + #{rceFtcInvestigationNote, jdbcType=VARCHAR} + ) + + + + INSERT INTO C_SUBCNTRSTTUS( + RCEPT_NO, + SUBCNTR_GUBUN, + SEQ_NO, + GUBUN, + SUBCNTR_DT, + SUBCNTR_AMOUNT, + CASH_DT, + CASH_AMOUNT, + BILL_PAYDAY, + BILL_LIMIT, + BILL_AMOUNT, + TOTAL_AMOUNT, + NON_PAYMENT, + NOTE + ) VALUES ( + #{rceptNo, jdbcType=VARCHAR}, + #{cntrGubun, jdbcType=VARCHAR}, + C_SUBCNTRSTTUS_SEQ.NEXTVAL, + #{subCntrCubun, jdbcType=VARCHAR}, + #{subCntrDt, jdbcType=VARCHAR}, + #{subCntrSttAmount, jdbcType=VARCHAR}, + #{subCntrCashDt, jdbcType=VARCHAR}, + #{subCntrCashAmount, jdbcType=VARCHAR}, + #{subCntrBillPayDay, jdbcType=VARCHAR}, + #{subCntrBillLimit, jdbcType=VARCHAR}, + #{subCntrBillAmount, jdbcType=VARCHAR}, + #{subCntrTotAmount, jdbcType=VARCHAR}, + #{subCntrNonPayment, jdbcType=VARCHAR}, + #{subCntrNote, jdbcType=VARCHAR} + ) + + + + INSERT INTO C_APPRESON ( + RCEPT_NO, + CASE_GUBUN, + APPLY_CHECK, + APPLY_ETC + ) VALUES ( + #{rceptNo}, + #{caseGubun}, + #{applyCheck}, + #{applyEtc} + ) + + + + UPDATE C_RCEPTMST + SET + CASE_GUBUN = #{caseGubun}, + CASE_REASON1 = #{caseReason1}, + + CASE_REASON2 = #{caseReason2}, + + + CASE_REASON3 = #{caseReason3}, + + REQUEST_CHECK = #{requestCheck}, + + FTC_CHECK = 'N', + + REG_DT = SYSDATE + WHERE RCEPT_NO = #{rceptNo} + + + + UPDATE C_APPLCNT + SET + APPLCNT_COMPANY = #{applcntCompany}, + COMPANY_CEO = #{companyCeo}, + COMPANY_GUBUN = #{companyGubun}, + ZIP = #{addrZip}, + ADDR1 = #{addr1}, + ADDR2 = #{addr2}, + ROAD_ADDR1 = #{roadAddr1}, + ROAD_ADDR2 = #{roadAddr2}, + TEL = #{tel}, + FAX = #{fax}, + BIZR_NO = #{bizrNo}, + CPR_NO = #{cprNo} + WHERE SEQ_NO = #{seqNo} + + + + DELETE FROM C_APPLCNT + WHERE SEQ_NO = #{seqNo} + + + + UPDATE C_RESPONDENT + SET + RESPONDENT_COMPANY = #{resCompany}, + RESPONDENT_CEO = #{resCeo}, + RESPONDENT_GUBUN = #{resGunbun}, + ZIP = #{resZip}, + ADDR1 = #{resAddr1}, + ADDR2 = #{resAddr2}, + ROAD_ADDR1 = #{resRoadAddr1}, + ROAD_ADDR2 = #{resRoadAddr2}, + TEL = #{resTel}, + FAX = #{resFax}, + BIZR_NO = #{resBizrNo}, + CPR_NO = #{resCprNo} + WHERE SEQ_NO = #{seqNo} + + + + DELETE FROM C_RESPONDENT + WHERE SEQ_NO = #{seqNo} + + + + UPDATE C_APPAGENT + SET + AGENT_COMPANY = #{agentCompany}, + AGENT_CEO = #{agentCeo}, + AGENT_TEL = #{agentTel}, + AGENT_HP = #{agentHp}, + AGENT_EMAIL = #{agentEmail}, + SPECIAL_TXT = '', + ZIP = #{agentZip}, + ADDR1 = #{agentAddr1}, + ADDR2 = #{agentAddr2}, + ROAD_ADDR1 = #{agentRoadAddr1}, + ROAD_ADDR2 = #{agentRoadAddr2} + WHERE RCEPT_NO = #{rceptNo} + + + + UPDATE C_RCEPTSTTUS + SET + CAPITAL = #{rceCapital, jdbcType=VARCHAR}, + TOTAL_ASSETS = #{rceTotAssets, jdbcType=VARCHAR}, + TOTAL_SALES = #{rceTotSales, jdbcType=VARCHAR}, + BUSINESS_PROFITS = #{rceBp, jdbcType=VARCHAR}, + FIRST_CONTRACT_DT = #{rceFirstContract, jdbcType=VARCHAR}, + START_CONTRACT = #{rceStartContract, jdbcType=VARCHAR}, + END_CONTRACT = #{rceEndContract, jdbcType=VARCHAR}, + CONTRACT_FILE = '', + PERSON_CHARGE = #{rcePersonCharge, jdbcType=VARCHAR}, + CONTACT_TEL = #{rceTel, jdbcType=VARCHAR}, + CONTACT_HP = #{rcePh, jdbcType=VARCHAR}, + CONTACT_FAX = #{rceFax, jdbcType=VARCHAR}, + CONTACT_OFCPS = #{rceOfcps, jdbcType=VARCHAR}, + CONTACT_EMAIL = #{rceEmail, jdbcType=VARCHAR}, + LAWSUIT_CHECK = #{rceLawCheck, jdbcType=VARCHAR}, + CONFERENCE_RESULT = #{rceConferenceResult, jdbcType=VARCHAR}, + ARBITRATION_CHECK = #{rceArbCheck, jdbcType=VARCHAR}, + REGULATING_ORGAN = #{rceRegulatingOrgan, jdbcType=VARCHAR}, + FTC_INVESTIGATION = #{rceFtcInvestigation, jdbcType=VARCHAR}, + APPLICATION_OBJ = #{editorParam_rceAppObj, jdbcType=VARCHAR}, + APPLICATION_REASON = #{editorParam_rceAppReason, jdbcType=VARCHAR}, + SUBCNTR_NUM = #{subcntrNum, jdbcType=INTEGER}, + SUBCNTR_GUBUN = #{subcntrGubun, jdbcType=VARCHAR}, + SUBCNTR_CON = #{subcntrCon, jdbcType=VARCHAR}, + SUBCNTR_AMOUNT = #{subCntrAmount, jdbcType=VARCHAR}, + MRHST_NUM = #{mrhstNum, jdbcType=INTEGER}, + MRHST_TYPE = #{mrhstType, jdbcType=VARCHAR}, + MRHST_BRAND_NM = #{mrhstBrand, jdbcType=VARCHAR}, + MRHST_INFO_CHECK = #{mrhstInfoCheck, jdbcType=VARCHAR}, + MRHST_BALANCE_CHECK = #{mrhstBalance, jdbcType=VARCHAR}, + MRHST_NAME = #{mrhstName, jdbcType=VARCHAR}, + MRHST_START_CONTRACT = #{mrhstStart, jdbcType=VARCHAR}, + MRHST_END_CONTRACT = #{mrhstEnd, jdbcType=VARCHAR}, + MRHST_FIRST_CONTRACT_DT = #{mrhstFirst, jdbcType=VARCHAR}, + MRHST_INFO_DT = #{mrhstInfoDt, jdbcType=VARCHAR}, + JOINING_AMOUNT = #{joiningAmount, jdbcType=VARCHAR}, + JOINING_AMOUNT_DT = #{joiningAmountDt, jdbcType=VARCHAR}, + JOINING_AMOUNT_BALANCE = #{joiningAmountBalance, jdbcType=VARCHAR}, + JOINING_AMOUNT_ORG = #{joiningAmountOrg, jdbcType=VARCHAR}, + DISTB_NUM = #{distbNum, jdbcType=INTEGER}, + DISTB_MAK_SHARE = #{distbMakShare, jdbcType=VARCHAR}, + DISTB_SHOP_GROSSAREA = #{distbShopGrossarea, jdbcType=VARCHAR}, + DISTB_TOTAL_SALES = #{distbTotSales, jdbcType=VARCHAR}, + DISTB_FTC = #{distbFtc, jdbcType=VARCHAR}, + LAWSUT_NOTE = #{rceLawNot, jdbcType=VARCHAR}, + ARBITRATION_NOTE = #{rceArbNote, jdbcType=VARCHAR}, + CONFERENCE_NOTE = #{rceConferenceResultNot, jdbcType=VARCHAR}, + REGULATING_NOTE = #{rceRegulatingOrganNote, jdbcType=VARCHAR}, + FTC_NOTE = #{rceFtcInvestigationNote, jdbcType=VARCHAR} + WHERE RCEPT_NO = #{rceptNo} + + + + + UPDATE C_SUBCNTRSTTUS + SET + GUBUN = #{subCntrCubun, jdbcType=VARCHAR}, + SUBCNTR_DT = #{subCntrDt, jdbcType=VARCHAR}, + SUBCNTR_AMOUNT = #{subCntrSttAmount, jdbcType=VARCHAR}, + CASH_DT = #{subCntrCashDt, jdbcType=VARCHAR}, + CASH_AMOUNT = #{subCntrCashAmount, jdbcType=VARCHAR}, + BILL_PAYDAY = #{subCntrBillPayDay, jdbcType=VARCHAR}, + BILL_LIMIT = #{subCntrBillLimit, jdbcType=VARCHAR}, + BILL_AMOUNT = #{subCntrBillAmount, jdbcType=VARCHAR}, + TOTAL_AMOUNT = #{subCntrTotAmount, jdbcType=VARCHAR}, + NON_PAYMENT = #{subCntrNonPayment, jdbcType=VARCHAR}, + NOTE = #{subCntrNote, jdbcType=VARCHAR} + WHERE SEQ_NO = #{seqNo} + + + + DELETE FROM C_SUBCNTRSTTUS + WHERE SEQ_NO = #{seqNo} + + + + UPDATE C_APPRESON + SET + RCEPT_NO = #{rceptNo}, + CASE_GUBUN = #{caseGubun}, + APPLY_CHECK = #{applyCheck}, + APPLY_ETC = #{applyEtc} + WHERE RCEPT_NO = #{rceptNo} + + + + DELETE FROM C_APPRESON + WHERE RCEPT_NO = #{rceptNo} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE + + C_CASEAPPLCNT + C_CASERESPONDENT + + SET + + + CASE_A_SIGN_NAME = #{caseSignName}, + CASE_A_SIGN = #{caseSign}, + CASE_A_DATE = SYSDATE + + + CASE_B_COMMENT = #{caseComment}, + CASE_B_SIGN_NAME = #{caseSignName}, + CASE_B_SIGN = #{caseSign}, + CASE_B_DATE = SYSDATE + + + CASE_C_COMMENT = #{caseComment}, + CASE_C_SIGN_NAME = #{caseSignName}, + CASE_C_SIGN = #{caseSign}, + CASE_C_DATE = SYSDATE + + + CASE_D_SIGN_NAME = #{caseSignName}, + CASE_D_SIGN = #{caseSign}, + CASE_D_DATE = SYSDATE + + + WHERE + CASE_NO = #{caseNo} + AND + SEQ_NO = #{isSeq} + + + + UPDATE + + C_CASEAPPLCNT + C_CASERESPONDENT + + SET + + + CASE_A_SIGN_NAME = null, + CASE_A_SIGN = null, + CASE_A_DATE = null + + + CASE_B_COMMENT = null, + CASE_B_SIGN_NAME = null, + CASE_B_SIGN = null, + CASE_B_DATE = null + + + CASE_C_COMMENT = null, + CASE_C_SIGN_NAME = null, + CASE_C_SIGN = null, + CASE_C_DATE = null + + + CASE_D_SIGN_NAME = null, + CASE_D_SIGN = null, + CASE_D_DATE = null + + + WHERE + CASE_NO = #{caseNo} + AND + SEQ_NO = #{isSeq} + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml index 210da1ae..9ddf1c31 100644 --- a/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml +++ b/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml @@ -100,5 +100,6 @@ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/Untitled-4.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/Untitled-4.jsp new file mode 100644 index 00000000..036dd60e --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/Untitled-4.jsp @@ -0,0 +1,171 @@ +
  • +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    *필수입력

    상호 +
    + + +

    *필수입력

    대표자 +
    + +
    +

    *필수입력

    개인/법인 +
    + +
    +

    *필수입력

    우편번호 +
    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    +

    *우편물(공문)을 수령할 수 있는 자택/사업장 주소를 기입 바랍니다.

    +
    +

    *필수입력

    도로명 주소 +
    +
      +
    • + +
    • +
    • + +
    • +
    + +
    +

    *필수입력

    이메일 +
    + +
    +

    *필수입력

    휴대폰 +
    +
    + - + + - + +
    +
    FAX +
    + - + - + +
    +
    +

    *필수입력

    사업자등록번호
    ('-'제외) +
    + + 법인등록번호
    ('-'제외)
    + +
    +
    +
  • \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04.jsp index 13915a9c..4dea0808 100644 --- a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04.jsp +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04.jsp @@ -12,13 +12,1961 @@ -
    - -
    @@ -171,30 +2119,32 @@ $(document).ready(function(){
    - - - - - - - - - - - - - - - - - - - - - - - -
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + +
    • @@ -290,39 +2240,6 @@ $(document).ready(function(){

      *필수입력

      신청사유 - <%--
      - -
      --%>
      • @@ -334,13 +2251,13 @@ $(document).ready(function(){
      - +

      *필수입력

      하도급 위탁유형 - + @@ -353,7 +2270,7 @@ $(document).ready(function(){

      신청인 기입사항

      * 표기는 필수 입력사항

      - +
    @@ -364,13 +2281,15 @@ $(document).ready(function(){ -
      -
    • +
        +
      • - + + +
        @@ -385,21 +2304,24 @@ $(document).ready(function(){ - + - + @@ -408,9 +2330,15 @@ $(document).ready(function(){ @@ -421,8 +2349,12 @@ $(document).ready(function(){ @@ -433,10 +2365,10 @@ $(document).ready(function(){ @@ -487,9 +2480,13 @@ $(document).ready(function(){ - + - +

        *필수입력

        상호
        + +

        *필수입력

        대표자
        + +

        *필수입력

        개인/법인
        - +
          -
        • -
        • -
        • +
        • + +
        • +
        • + +
        • +
        • + checked> +

        *우편물(공문)을 수령할 수 있는 자택/사업장 주소를 기입 바랍니다.

          -
        • -
        • +
        • + +
        • +
        • + +
        - - - - - + + + - + + - + + + + - + + - + + + +
        FAX
        - - - - - + - + - +

        *필수입력

        사업자등록번호
        ('-'제외)
        + + 법인등록번호
        ('-'제외)
        + +
        @@ -498,16 +2495,193 @@ $(document).ready(function(){
      + + + +
        +
      • +
        + + +
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +

        *필수입력

        상호 +
        + + +

        *필수입력

        대표자 +
        + +
        +

        *필수입력

        개인/법인 +
        + +
        +

        *필수입력

        우편번호 +
        +
          +
        • + +
        • +
        • + +
        • +
        • + +
        • +
        +

        *우편물(공문)을 수령할 수 있는 자택/사업장 주소를 기입 바랍니다.

        +
        +

        *필수입력

        도로명 주소 +
        +
          +
        • + +
        • +
        • + +
        • +
        + +
        +

        *필수입력

        이메일 +
        + +
        +

        *필수입력

        휴대폰 +
        +
        + - + + - + +
        +
        FAX +
        + - + - + +
        +
        +

        *필수입력

        사업자등록번호
        ('-'제외) +
        + + 법인등록번호
        ('-'제외)
        + +
        +
        +
      • +
      +
      - - + +
      -
    -
    + + diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_1.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_1.jsp new file mode 100644 index 00000000..64c8e478 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_1.jsp @@ -0,0 +1,6226 @@ +<%@ page language='java' contentType='text/html; charset=UTF-8'%> +<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%> +<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> +<%@ page import="seed.utils.SeedProperties"%> +<%@ page import="seed.utils.SeedUtils"%> + +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0"%> + + + + + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + +
      +
    • +
    • 분쟁조정 신청
    • +
    • 분쟁조정 신청하기
    • +
    + + +

    분쟁조정 신청하기

    +

    거래유형에 따른 분쟁조정 신청방법 및 절차를 알려드립니다.

    + +
      +
    • +

      STEP 01 개인정보수집

      + +
    • +
    • +

      STEP 02 신청인 정보

      + +
    • +
    • +

      STEP 03 피신청인 정보

      + +
    • +
    • +

      STEP 04 사건현황

      + +
    • +
    • +

      STEP 05 분쟁정보

      + +
    • +
    + + +
    +

    피신청인 기입사항

    +
    +

    * 표기는 필수 입력사항

    + +
    +
    + + + + + + + + +
      +
    • +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      *필수입력

      상호 +
      + + +

      *필수입력

      대표자 +
      + +
      +

      *필수입력

      개인/법인 +
      + +
      +

      *필수입력

      우편번호 +
      +
        +
      • + +
      • +
      • + + +
      • +
      • + checked> + +
      • +
      +
      +

      *필수입력

      도로명 주소 +
      +
        +
      • + +
      • +
      • + +
      • +
      + +
      +

      *필수입력

      휴대폰 +
      +
      + + + - + + - + + + + - + + - + + + +
      +
      FAX +
      + - + - + +
      +
      +

      *필수입력

      사업자등록번호
      ('-'제외) +
      + + 법인등록번호
      ('-'제외)
      + +
      +
      +
    • +
    +
    +
    + + + +
      +
    • +
      + + +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +

      *필수입력

      상호 +
      + + +

      *필수입력

      대표자 +
      + +
      +

      *필수입력

      개인/법인 +
      + +
      +

      *필수입력

      우편번호 +
      +
        +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      +

      *우편물(공문)을 수령할 수 있는 자택/사업장 주소를 기입 바랍니다.

      +
      +

      *필수입력

      도로명 주소 +
      +
        +
      • + +
      • +
      • + +
      • +
      + +
      +

      *필수입력

      휴대폰 +
      +
      + - + + - + +
      +
      FAX +
      + - + - + +
      +
      +

      *필수입력

      사업자등록번호
      ('-'제외) +
      + + 법인등록번호
      ('-'제외)
      + +
      +
      +
    • +
    +
    +
    + + +
    + + +
    + +
    +
    + + + + + + + + + + +<%-- <%@ page language='java' contentType='text/html; charset=UTF-8'%> +<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %> +<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%> +<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> +<%@ page import="seed.utils.SeedProperties"%> +<%@ page import="seed.utils.SeedUtils"%> +<% +SeedProperties seedProperties = new SeedProperties(); +String captchaChk = SeedUtils.setReplaceNull(seedProperties.getConfigValue("captcha")); +%> + + + + <c:out escapeXml='true' value='${siteMenuTitle}'/> + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    본문

    +
    +

    분쟁조정 신청

    + 거래유형에 따른 분쟁조정 신청방법 및 절차를 알려드립니다. +
    + +
    + + +
    +

    신청인 기입사항

    +
      +
    • 분쟁조정에 필요한 정보(사업자 정보 및 분쟁사실 등)는 담당자 및 분쟁조정협의회 위원 등 관계자들에게만 제공되며, 신청인 및 신청인 소속 직원의 개인정보에 대해서는 관계 법령에 따라 비밀유지 의무를 준수합니다.

    • +
    • 조정원은 분쟁조정 신청 이후 분쟁사실 검토를 위해 관련 법령에 따라 사실관계 확인 등에 필요한 자료제출을 요구할 수 있으며, 자료제출에 2회 이상 불응할 경우 조정절차가 중지될 수 있으니 이 점 유의하시기 바랍니다.

    • +
    • 조정절차 진행 및 조정의사 확인 등을 이유로 필요한 경우 우편으로 문서가 통지될 수 있습니다.

    • +
    +
    + + + +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    분쟁조정신청서 작성 폼 : 조정유형, 신청사유, 하도급 위탁유형, 신청인의 상호, 대표자, 개인/법인, 우편번호, 지번주소, 도로명주소, 대표전화번호, FAX, 사업자등록번호, 법인등록번호
    + 필수입력 + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 필수입력 + + + +
    + +
    +
    +
    +
    +
    + 필수입력 + + + +
    +
    +
    +
    신청인 + + + 필수입력 + + + + 필수입력 + + +
    + 필수입력 + + + + +
    + 필수입력 + + + + + +
    *우편물(공문)을 수령할 수 있는 자택/사업장 주소를 기입 바랍니다. +
    + 필수입력 + + + +
    + +
    + 필수입력 + + + + +
    + +
    + 필수입력 + + + @ + + +
    + 필수입력 + + +
    (휴대폰) +
    + - + - + + + - + - + + + + + - + - + +
    + 필수입력 +
    ('-'제외) + +
    + + +
    ('-'제외) + +
    + +
    +
    조정유형 : 분쟁조정에 필요한 최소한의 정보(성명, 연락처, 주소 등)는 당사자 및
    +
    신청사유 : 계약상대방의 불공정거래행위 유형을 선택하되, 해당 행위가 복수인 경우 피해금액이 가장 큰 유형을 먼저 선택합니다. (신청사유는 최대 3개까지 선택할 수 있습니다.)
    +
    상호 : 계약당사자가 개인사업자의 경우 사업자등록증 상의 상호를, 법인사업자인 경우 법인등기부등본 상의 법인명을 기재하시기 바랍니다.
    +
    대표자 : 계약당사자가 개인사업자의 경우 사업자등록증 상의 대표를, 법인사업자인 경우 법인등기부등본 상의 대표이사를 기재하시기 바랍니다. +
    +
    개인/법인 : 법인등록번호가 있는 경우 법인을, 그렇지 않은 경우 개인을 선택하여 주시기 바랍니다. +
    +
    신청인 : 신청인 : 분쟁조정 신청 당사자이자 분쟁의 실제 계약당사자에 해당합니다.
    +
    도로명주소 : 우편번호 검색을 통해 조정절차 진행과정에서 우편물을 실제 수령할 수 있는 주소를 입력하시기 바랍니다. +
    +
    대표전화번호 : 조정절차 참여에 활용 가능한 대표번호 또는 임직원의 전화번호 또는 휴대폰 번호를 기재하시기 바랍니다. +
    +
    사업자등록번호 : 사업자등록증 상에 표기된 등록번호를 기재하시기 바랍니다. +
    +
    법인등록번호 : 법인등기부등본 상에 표기된 등록번호를 기재하시기 바랍니다. +
    +
    하도급 위탁유형 : 하도급거래시 하도급 위탁유형을 선택합니다. +
    +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    신청인 작성 폼 : 조정유형, 신청사유, 신청인의 상호, 대표자, 개인/법인, 우편번호, 지번주소, 도로명주소, 대표전화번호, FAX, 사업자등록번호, 법인등록번호
    신청인 + + + +
    + + + +
    + + + + +
    + + + +
    + +
    + + + +
    + +
    + 필수입력 + + + @ + + +
    + +
    (휴대폰) +
    + - + - + + + + + - + - + +
    +
    ('-'제외) +
    + + +
    ('-'제외) +
    + +
    +
    +
    +
    +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    분쟁조정신청서 작성 폼 : 조정유형, 신청사유, 신청인의 상호, 대표자, 개인/법인, 우편번호, 지번주소, 도로명주소, 대표전화번호, FAX, 사업자등록번호, 법인등록번호
    + 필수입력 + + + + + + + + + + + + + + + + + + + + + + + + + +
    + 필수입력 + + + +
    + +
    +
    +
    +
    +
    + 필수입력 + + + +
    +
    +
    +
    신청인 + + + 필수입력 + + + + 필수입력 + + +
    + 필수입력 + + + + +
    + 필수입력 + + + + + +
    *우편물(공문)을 수령할 수 있는 자택/사업장 주소를 기입 바랍니다. +
    + 필수입력 + + + +
    + +
    + 필수입력 + + + + +
    + +
    + 필수입력 + + + @ + + +
    + 필수입력 + + +
    (휴대폰) +
    + - + - + + + + + - + - + +
    + 필수입력 +
    ('-'제외) + +
    + + +
    ('-'제외) + +
    + +
    +
    조정유형 : 분쟁조정에 필요한 최소한의 정보(성명, 연락처, 주소 등)는 당사자 및
    +
    신청사유 : 계약상대방의 불공정거래행위 유형을 선택하되, 해당 행위가 복수인 경우 피해금액이 가장 큰 유형을 먼저 선택합니다. (신청사유는 최대 3개까지 선택할 수 있습니다.)
    +
    상호 : 계약당사자가 개인사업자의 경우 사업자등록증 상의 상호를, 법인사업자인 경우 법인등기부등본 상의 법인명을 기재하시기 바랍니다.
    +
    대표자 : 계약당사자가 개인사업자의 경우 사업자등록증 상의 대표를, 법인사업자인 경우 법인등기부등본 상의 대표이사를 기재하시기 바랍니다. +
    +
    개인/법인 : 법인등록번호가 있는 경우 법인을, 그렇지 않은 경우 개인을 선택하여 주시기 바랍니다. +
    +
    신청인 : 신청인 : 분쟁조정 신청 당사자이자 분쟁의 실제 계약당사자에 해당합니다.
    +
    도로명주소 : 우편번호 검색을 통해 조정절차 진행과정에서 우편물을 실제 수령할 수 있는 주소를 입력하시기 바랍니다. +
    +
    대표전화번호 : 조정절차 참여에 활용 가능한 대표번호 또는 임직원의 전화번호 또는 휴대폰 번호를 기재하시기 바랍니다. +
    +
    사업자등록번호 : 사업자등록증 상에 표기된 등록번호를 기재하시기 바랍니다. +
    +
    법인등록번호 : 법인등기부등본 상에 표기된 등록번호를 기재하시기 바랍니다. +
    +
    하도급 위탁유형 : 하도급거래시 하도급 위탁유형을 선택합니다. +
    +
    +
    +
    +
    + + + + + +
    +

    피신청인 기입사항

    +
      +
    • 피신청인은 분쟁관계에 있는 상대방을 의미합니다.

    • +
    + + +
    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    피신청인 등록폼 : 피신청인의 상호, 대표자, 개인/법인, 우편번호, 지번주소, 도로명주소, 대표전화번호(휴대폰), FAX, 사업자등록번호, 법인등록번호
    피신청인 + 필수입력 + + + + 필수입력 + + +
    + 필수입력 + + + +
    + 필수입력 + + + + + +
    + 필수입력 + + + +
    + +
    + 필수입력 + + + +
    + +
    + 필수입력 + + +
    (휴대폰) +
    + - + - + + + - + - + + + + + - + - + +
    + 필수입력 +
    ('-'제외) +
    + + +
    ('-'제외) +
    + +
    +
    +
    +
    +
    + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    피신청인 등록폼 : 피신청인의 상호, 대표자, 개인/법인, 우편번호, 지번주소, 도로명주소, 대표전화번호(휴대폰), FAX, 사업자등록번호, 법인등록번호
    피신청인 + 필수입력 + + + + 필수입력 + + +
    + 필수입력 + + + +
    + 필수입력 + + + + + +
    + 필수입력 + + + +
    + +
    + 필수입력 + + + +
    + +
    + 필수입력 + + +
    (휴대폰) +
    + - + - + + + + + - + - + +
    + 필수입력 +
    ('-'제외) +
    + + +
    ('-'제외) +
    + +
    +
    +
    +
    +
    + +
    상호 : 계약당사자로서 분쟁 관련 계약서 등 자료에서 확인이 가능한 상호명을 정확하게 기재하시기 바랍니다. +
    +
    대표자 : 계약당사자로서 분쟁 관련 계약서 등 자료에서 확인이 가능한 대표자(또는 대표이사)를 정확하게 기재하시기 바랍니다. +
    +
    대표 전화번호 : 연락이 가능한 계약상대방의 사업장 전화번호를 기재하시기 바랍니다. +
    +
    +
    + + + + +
    +

    사건 현황

    +
      +
    • 사건 현황에 대한 입력란 입니다.

    • +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    사건현황 작성 폼 : 상호, 대표자, 전화번호, 휴대폰, 대표E-Mail, 우편번호, 지번주소, 도로명주소
    대리인정보 + + + +
    + + + + + + + - + - + +
    + + + +
    + + + + + +
    + + + +
    + +
    + + + +
    + +
    +
    +
    +

    대리인 정보는 하단 증빙자료 첨부 또는 우편으로 별도 제출이 가능합니다.

    + + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    사건현황 작성 폼2 : 주요재무현황 등의 자본금, 자산총액, 총매출액, 영업이익, 이사건 확인사항의 최초계약체결일, 계약기간, 계약서 사본, 담당자 인적사항의 성함, 전화번호, 휴대폰, FAX, 부서/직위, E메일, 우편번호, 지번주소, 도로명주소, 기타확인사항의 소송, 타 협의회 조정, 중재, 타조정기구 조정, 공정거래위원회 조사.
    주요
    재무현황 등
    + + + + + +
    + + + + + +
    이 사건
    확인사항
    + + + + + +
    + + + + + + - + + + +
    + + + + + +
      + + +
    • + gif   + ${file.FILE_NAME} + 삭제 + + + +
    + + + + + +
    + 담당자
    인적사항 +
    + + + +
    + + + +
    + + + - + - + + + + + - + - + +
    + + + 필수입력 + +
    + + + + + +
    + +
    + +
    + 신청
    확인사항
    (필수) +
    + 귀하는 ‘한국공정거래조정원’을 어떤 경로로 알게 되셨습니까? +
    +

    +
    + checked="checked">
    + checked="checked">
    + checked="checked">
    +
    + checked="checked">
    + checked="checked">
    + checked="checked">
    +
    + checked="checked">
    + checked="checked">
    + checked="checked">
    + checked="checked" class="num04">
    +
    + checked="checked">
    + checked="checked">
    + checked="checked">style="display:inline-block;"style="display:none;" value=""> +

    +
    기타
    확인사항
    + 필수입력 + + + + checked="checked"> + checked="checked"> + + +
    +
    + checked="checked"> + checked="checked"> +
    + *진행일 경우 하단 증빙자료에 소장 반드시 첨부 요망 +
    + 필수입력 + + + + checked="checked"> + checked="checked"> + +
    + 필수입력 + + + + checked="checked"> + checked="checked"> + +
    + 필수입력 + + + + checked="checked"> + checked="checked"> + +
    + 필수입력 + + + + checked="checked"> + checked="checked"> + +
    + 필수입력 + + + checked="checked"> + checked="checked"> + + *하단 증빙자료에 의결서 반드시 첨부 요망 +
    + 필수입력 + + + checked="checked"> + checked="checked"> +
    +
    자본금 : 계약체결일 기준 직전 사업연도에 대한 부가가치세 과세표준증명원, 감사보고서 및 기업재무제표 상에 기재된 정보를 참조하여 작성하시기 바랍니다. +
    +
    자산총액 : 계약체결일 기준 직전 사업연도에 대한 부가가치세 과세표준증명원, 감사보고서 및 기업재무제표 상에 기재된 정보를 참조하여 작성하시기 바랍니다. +
    +
    총매출액 : 계약체결일 기준 직전 사업연도에 대한 부가가치세 과세표준증명원, 감사보고서 및 기업재무제표 상에 기재된 정보를 참조하여 작성하시기 바랍니다. +
    +
    영업이익 : 계약체결일 기준 직전 사업연도에 대한 부가가치세 과세표준증명원, 감사보고서 및 기업재무제표 상에 기재된 정보를 참조하여 작성하시기 바랍니다. +
    +
    최초계약일 : 양 당사자가 최초로 계약서를 작성한 날짜 또는 최초로 거래를 개시한 날짜를 기재하여 주시기 바랍니다. +
    +
    계약기간 : 최초 계약기간 및 계약이 연장된 경우 그 기간을 모두 포함한 전체 계약기간을 기재하여 주시기 바랍니다. +
    +
    계약서 사본 : 양 당사자가 작성한 계약서 사본을 pdf 또는 그림파일(jpg, gif 등)형태로 첨부해 주시기 바랍니다. +
    +
    대표자와 동일 : 계약당사자와 이 사건 분쟁조정에 참여 가능한 담당자가 같은 경우에 선택하시기 바랍니다. +
    + +
    소송 : 조정절차 진행여부 결정을 위한 확인사항으로서 귀사의 분쟁과 관련하여 민사소송(형사소송은 제외됩니다)이 진행 중인 경우 선택하신 뒤 소제기증명원 상의 사건번호를 기재하여 주시기 바랍니다. +
    +
    타협의회조정 : 조정절차 진행여부 결정을 위한 확인사항으로서 귀사의 분쟁과 관련 하여 조정절차가 조정원의 다른 분쟁조정협의회에서 진행 중인 경우 선택 후 분쟁조정협의회의 명칭 및 접수통지서 상의 사건번호를 기재하여 주시기 바랍니다. +
    +
    중재 : 조정절차 진행여부 결정을 위한 확인사항으로서, 해당 분쟁 관련 중재절차가 진행 중인 경우 선택 후 중재기관명 및 사건번호를 기재하여주시기 바랍니다. +
    +
    타 조정기구 조정 : 조정절차 진행여부 결정을 위한 확인사항으로서 귀사의 분쟁과 관련 하여 조정절차가 조정원 외 분쟁조정 기관에서 진행 중인 경우 선택 하신 뒤 기관명칭 및 사건번호를 기재하여 주시기 바랍니다. +
    +
    공정거래위원회 조사 : 조정절차 진행여부 결정을 위한 확인사항으로서, 공정거래위원회에서 해당 분쟁에 대하여 조사하고 있는 경우 선택하신 뒤 그 담당부서 및 +사건번호를 기재하여 주시기 바랍니다. +
    + +
    +
    + + +
    +

    협의회별 상세 현황

    +
      +
    • 협의회별 상세 입력 사항입니다.

    • +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    협의회별 상세 입력 사항 폼 : 하도급 분야의 상시종업원수, 대/중소기업 구분, 공사업등록여부, 시공능력 평가액
    하도급 분야 + + + + + + + +
    + + + + + + + + + +
    +
    상시종업원수 : 계약체결 직전 사업연도 기준 원천징수이행상황신고서상 12월말 월급여 간이세율(A01) 총인원을 기재하시기 바랍니다. +
    +
    대/중소기업 구분 : 매출액 및 자산총액을 고려하여 중소기업법상 중소기업자에 해당하는지 여부를 선택하시기 바랍니다. +
    +
    공사업등록여부 : 건설산업기본법상(전기공사업법, 정보통신공사업법, 소방시설공사업법) 공사업 등록여부를 선택하시기 바랍니다. +
    +
    시공능력 평가액 : 계약체결 연도 기준 최신 공시된 시공능력평가액을 기재하시기 바랍니다. (보유 공사업 시평액의 총 합계액) +
    +
    +
    + +

    우편용 신청서 참조

    + + + + +
    +
    + 하도급대금 내역(신청인) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    하도급대금 내역(신청인) 폼 : 목적물인도(수)(기성청구서상)의 구분, 일자, 금액, 하도급대금수령(지급)의 현금, 어음, 총액, 미지금, 현금의 일자, 금액, 어음의 지급일, 만기일, 금액, 비고
    목적물인도(수)
    (기성청구서상)
    하도급대금수령(지급)비고
    일자금액현금어음총액미지급
    일자금액지급일만기일금액
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    + 소계: + + + + + + + + + + + + + + + +
    +
    하도급대금 내역(신청인) : 하도급대금 청구 및 수령 내역을 양식에 맞춰 기재하시기 바랍니다.(공사 계약별로 구분하여 작성) +
    +
    + + +
    +
    +
    + + + + + + + +
    +
    + 도급대금 내역(피신청인) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    도급대금 내역(신청인) 폼 : 목적물인도(수)(기성청구서상)의 구분, 일자, 금액, 하도급대금수령(지급)의 현금, 어음, 총액, 미지금, 현금의 일자, 금액, 어음의 지급일, 만기일, 금액, 비고
    목적물인도(수)
    (기성청구서상)
    도급대금수령비고
    일자금액현금어음총액미지급
    일자금액지급일만기일금액
    + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    + 소계: + + + + + + + + + + + + + + + +
    +
    도급대금 내역(피신청인) : 도급대금(이 사건 하도급공사 부분) 청구 및 수령 내역을 양식에 맞춰 기재하시기 바랍니다. +
    +
    + + +
    +
    +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + +
    사건현황 작성 3번째 폼 : 증빙자료첨부
    + + + + + +
      + + +
    • + gif   + ${file.FILE_NAME} + 삭제 + + + +
    +
    +
    + +

    주요 재무 현황, 이 사건 확인사항, 담당자 인적사항, 기타확인사항은 일반현황표 참조, 하단 증빙자료 첨부 또는 우편 별도제출 가능

    + + + + +
    +

    분쟁정보

    +
      +
    • 신청내용에는 분쟁과 관련한 정보와 분쟁조정을 통해 구제받고자 하는 취지(손해의 배상, 계약의 유지 또는 해지 등)및 그 취지를 설명할 수 있는 이유를 구체적이고 명확하게 기재하여야 조정절차가 보다 신속하게 진행될 수 있습니다.

    • +
    +
    + + + + + + + + + + + + + + + + +
    분쟁정보 입력 폼 : 신청취지, 신청이유
    + 필수입력 + + + + +
    + 필수입력 + + + + +
    +
    +
    + + + +
    + +
    + + +
    +
    + + + + +
    +
    + 분쟁조정 단계별 절차 안내 +
      +
    • [1] 신청서 접수 +
        +
      • 우리 원은 직접 방문, 우편, 인터넷을 통해 분쟁조정신청서를 접수합니다.
      • +
      • - 신청서 작성 시 유의사항
      • +
      • ㅇ 양 당사자 연락처를 정확히 기재바랍니다.
      • +
      • ㅇ 사안이 다양할 경우 피해금액이 큰 주장 위주로 작성해 주시기 바랍니다.
      • +
    • +
    • [2] 양당사자 접수통지 +
        +
      • 사건 접수 후 담당조사관이 등기우편으로 양 당사자에게 접수사실 및 자료 요청을 공문으로 통지해 드립니다. 단, 접수과정에서 우리 원의 조정대상에 해당하지 않는 경우 조정절차가 종료될 수 있습니다.
      • +
    • +
    • [3] 자료제출 +
        +
      • 양당사자는 기한 내에 분쟁 관련 자료(보완서, 답변서, 일반현황표)를 제출해야 하며, 당사자가 2회 이상 자료제출 요청에 불응하면 분쟁조정 절차가 중지될 수 있습니다.
      • +
      • ※ 일반현황표는 양당사자의 거래관계 및 분쟁조정 대상 여부 검토에 활용됩니다.
      • +
    • +
    • [4] 사실관계 조사 +
        +
      • 양 당사자가 제출한 자료들의 검토를 거쳐 본격적인 조정절차가 진행됩니다. 필요한 경우 당사자들에게 출석을 요구할 수 있으며, 조정절차 중 당사자가 직접 합의하여 조정이 종료될 수 있습니다. 반면 자료제출 또는 출석요구 등 조사과정에 2회 이상 참여하지 않는 경우 조정절차가 중지될 수 있습니다.
      • +
    • +
    • [5] 협의회 개최 및 의결 +
        +
      • 사실관계 중 해결되지 않은 사건은 우리 원 분쟁조정협의회에 안건으로 상정되며, 협의회 위원들이 심의 절차를 거쳐 조정안 제시 여부를 결정하고 제시하게 됩니다.
      • +
    • +
    • [6] 조정안 제시 +
        +
      • 협의회에서 조정안을 제시할 경우, 그에 따라 양 당사자에게 조정결정서가 전달되며 양 당사자는 기한(14일) 내에 우리 원 조정안에 대한 수락 여부를 통지해야 합니다.
      • +
    • +
    • [7] 조정절차 종료사실 통지 +
        +
      • 협의회의 의결 결과(합의 여부 등)에 따른 조정절차 결과는 양 당사자에게 문서로 등기 송달되고, 사실상 모든 조정절차가 종료됩니다.
      • +
    • +
    • [8] 후속조치 +
        +
      • 조정이 되지 않은 사건의 경우 공정거래위원회에 보고되며, 공정거래위원회에서는 사안을 검토하여 필요한 경우 사건조사 등 사건처리절차를 개시하게 됩니다.
      • +
    • +
    +
    +
    + + + + +
    +
    + + + 사업자 간에 발생한 분쟁으로서 다음 유형의 행위에 해당하는 경우 +

    + - 공정거래법 제23조 제1항의 일반 불공정거래행위 (거래거절, 차별적 취급, 경쟁사업자 배제, 부당 고객유인, 거래강제, 거래 상지위남용, 구속조건부거래, 사업활동 방해) + - 병행수입 관련 불공정거래행위 + - 신문업에 있어서의 불공정거래행위 + - 특수형태근로종사자(골프장 경기보조원, 레미콘기사, 보험설계사, 학습지교사)에 대한 거래상지위남용행위 + ※ 신청제외 대상 : 불공정거래행위 이외의 공정거래법 위반 행위, 공정위 소관 다른 법령 위반 행위(약관규제법, 하도급법, 방문판매법 등), 소비자 분쟁 및 단순 민사분쟁 +

    +
    + + 가맹사업거래 중 발생한 분쟁으로서 다음 유형의 행위에 해당하는 경우 (기타 불공정거래행위 추가) +

    + - 가맹본부의 정보공개서 미제공 + - 가맹본부의 허위ㆍ과장된 정보제공 + - 부당한 계약해지 + - 부당한 계약종료 + - 영업지역의 침해 + ※ 신청제외 대상 : 대리점 계약, 카드가맹점, 소비자 분쟁 등 +

    +
    + + 하도급거래 중 발생한 분쟁으로서 다음 유형의 행위에 해당하는 경우 +

    + - 하도급대금의 부당 결정, 하도급대금 미지급, 부당 감액, 어음할인료 미지급, 부당한 대물변제, 선급금 미지급 + - 설계변경 또는 원재료의 가격 변동 등에 따른 하도급대금 조정의무 불이행 + - 물품 등의 구매 강제 + - 부당한 위탁 취소, 부당하게 목적물 등의 수령 거부 + - 부당하게 기술자료 또는 경제적 이익 제공 요구 + ※ 신청제외 대상 : 하도급법 제2조 제1항 내지 제3항의 규정에 의한 “하도급거래”, “원사업자”, “수급사업자” 요건을 충족하지 아니하는 경우, 당해 거래가 끝난 날로부터 3년이 지난 경우, 단순 민사 분쟁 등 +

    +
    + + 대규모유통업거래 중 발생한 분쟁으로서 다음 유형의 행위에 해당하는 경우 +

    + - 대규모유통업자란, 소비자가 사용하는 상품을 다수의 사업자로부터 납품받아 판매하는 자로서 직전 사업연도 소매업종 매출액이 1천억원 이상이거나 매장면적 합계 3천㎡이상인 점포를 소매업에 사용하는 자 + - 납품업자등이란, 대규모유통업자가 판매할 상품을 공급하는 납품업자와 대규모유통업자로부터 매장의 일부를 임차하여 소매업을 영위하는 자 + - 상품대금 부당감액, 판매촉진비용의 부담전가, 상품권 구입 요구, 기타 불이익 등 + ※ 신청제외 대상 : 대규모유통업자가 납품업자등에 대하여 거래상 우월적 지위에 있다고 인정되지 아니하는 경우 +

    +
    + + 다음과 같은 불공정약관으로 인하여 피해를 입은 고객과 사업자 사이의 분쟁 +

    + - 고객에게 부당하게 불리한 약관 + - 고객에게 부당하게 과중한 손해배상의무를 부담시키는 약관 + - 법률에 따른 고객의 항변권, 상계권 등의 권리를 상당한 이유 없이 배제·제한하는 약관 + - 기타 약관규제법 제17조를 위반한 불공정약관 + ※ 신청제외 대상 : 소비자기본법 제2조 제1호에 따른 소비자인 경우, 약관의 해석이나 그 이행을 요구하는 사건, 약관의 무효판정을 요구하는 사건 등 +

    +
    + + 분쟁조정신청서 작성 방법 중 대리점거래 해당 유형 +

    + - 대리점거래 계약서 미제공 구입 강제, 경제상 이익 제공 강요, 판매목표 강제, 경영활동 간섭, 주문내역의 확인요청 거부 또는 회피 등 대리점거래에서 발생한 분쟁 + - 적용제외: 공급업자가 중소기업자에 해당하거나 대리점이 중소기업자에 해당하지 아니하는 경우, 공급업자가 대리점에 대하여 거래상 우월한 지위를 가지고 있다고 인정되지 아니하는 경우, 가맹사업ㆍ금융투자업ㆍ대규모유통업에 해당하는 거래 등은 제외 +

    +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    + +
    + +
    + + +
    + +
    +
    +
    + + +
    + +
    +
    + + + + + + + + + + + + + + + --%> diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_ori_241018.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_ori_241018.jsp index c7d56907..8cfc8b7a 100644 --- a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_ori_241018.jsp +++ b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationStep04_ori_241018.jsp @@ -1940,6 +1940,57 @@ String captchaChk = SeedUtils.setReplaceNull(seedProperties.getConfigValue("capt + + !!!!!!!!!!!!!!!!!!!!!!여기까지 step01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    조정유형 : 분쟁조정에 필요한 최소한의 정보(성명, 연락처, 주소 등)는 당사자 및
    신청사유 : 계약상대방의 불공정거래행위 유형을 선택하되, 해당 행위가 복수인 경우 피해금액이 가장 큰 유형을 먼저 선택합니다. (신청사유는 최대 3개까지 선택할 수 있습니다.)
    상호 : 계약당사자가 개인사업자의 경우 사업자등록증 상의 상호를, 법인사업자인 경우 법인등기부등본 상의 법인명을 기재하시기 바랍니다.
    @@ -2371,6 +2422,26 @@ String captchaChk = SeedUtils.setReplaceNull(seedProperties.getConfigValue("capt + + !!!!!!!!!!!!!!!!!!!!!!여기까지 step01 + + + + + + + + + + + + + + + + + +
    조정유형 : 분쟁조정에 필요한 최소한의 정보(성명, 연락처, 주소 등)는 당사자 및
    신청사유 : 계약상대방의 불공정거래행위 유형을 선택하되, 해당 행위가 복수인 경우 피해금액이 가장 큰 유형을 먼저 선택합니다. (신청사유는 최대 3개까지 선택할 수 있습니다.)
    상호 : 계약당사자가 개인사업자의 경우 사업자등록증 상의 상호를, 법인사업자인 경우 법인등기부등본 상의 법인명을 기재하시기 바랍니다.
    diff --git a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationstep04_js.jsp b/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationstep04_js.jsp deleted file mode 100644 index 64bc8144..00000000 --- a/src/main/webapp/WEB-INF/jsp/_extra/web/user/mediation/mediationstep04_js.jsp +++ /dev/null @@ -1,1511 +0,0 @@ -<%@ page language='java' contentType='text/html; charset=UTF-8'%> -<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c' %> -<%@ taglib uri="http://www.springframework.org/tags" prefix="s"%> -<%@ taglib uri='http://www.springframework.org/tags/form' prefix='form'%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> -<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> -<%@ page import="seed.utils.SeedProperties"%> -<%@ page import="seed.utils.SeedUtils"%> - - \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/autoAddFiles.html b/src/main/webapp/innorix_2/exam/autoAddFiles.html new file mode 100644 index 00000000..4c9fd86d --- /dev/null +++ b/src/main/webapp/innorix_2/exam/autoAddFiles.html @@ -0,0 +1,48 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/combine.html b/src/main/webapp/innorix_2/exam/combine.html new file mode 100644 index 00000000..b62ff6bb --- /dev/null +++ b/src/main/webapp/innorix_2/exam/combine.html @@ -0,0 +1 @@ + ← 예제 목록


    | \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/download.html b/src/main/webapp/innorix_2/exam/download.html new file mode 100644 index 00000000..22350d29 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/download.html @@ -0,0 +1,53 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/download.jsp b/src/main/webapp/innorix_2/exam/download.jsp new file mode 100644 index 00000000..e1db125c --- /dev/null +++ b/src/main/webapp/innorix_2/exam/download.jsp @@ -0,0 +1,144 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); + +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String sysFileName = new String(); +String orgFileName = new String(); +String htmlMode = request.getParameter("_Html5"); + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/downloadCustomTable.html b/src/main/webapp/innorix_2/exam/downloadCustomTable.html new file mode 100644 index 00000000..874f9d50 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/downloadCustomTable.html @@ -0,0 +1,121 @@ + + + + + + + + + + + ← 예제 목록

    + + + + + + + + + + + + + +
    filePathfileSizefileType파일명용량구분
    + +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/downloadMulti.html b/src/main/webapp/innorix_2/exam/downloadMulti.html new file mode 100644 index 00000000..a076adf5 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/downloadMulti.html @@ -0,0 +1,61 @@ + + + + + + + + + ← 예제 목록

    + +

    + + +

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/dropZone.html b/src/main/webapp/innorix_2/exam/dropZone.html new file mode 100644 index 00000000..b58a3a0b --- /dev/null +++ b/src/main/webapp/innorix_2/exam/dropZone.html @@ -0,0 +1,49 @@ + + + + + + + + + ← 예제 목록

    + + + +
    Drop files and folders here


    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/edit.html b/src/main/webapp/innorix_2/exam/edit.html new file mode 100644 index 00000000..d1918c20 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/edit.html @@ -0,0 +1 @@ + ← 예제 목록


    | |

    \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/html5Combine.html b/src/main/webapp/innorix_2/exam/html5Combine.html new file mode 100644 index 00000000..377b9e6b --- /dev/null +++ b/src/main/webapp/innorix_2/exam/html5Combine.html @@ -0,0 +1 @@ + ← 예제 목록


    | \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/html5Download.html b/src/main/webapp/innorix_2/exam/html5Download.html new file mode 100644 index 00000000..1580955a --- /dev/null +++ b/src/main/webapp/innorix_2/exam/html5Download.html @@ -0,0 +1,47 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/html5Upload.html b/src/main/webapp/innorix_2/exam/html5Upload.html new file mode 100644 index 00000000..67d4a251 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/html5Upload.html @@ -0,0 +1,37 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + diff --git a/src/main/webapp/innorix_2/exam/index.html b/src/main/webapp/innorix_2/exam/index.html new file mode 100644 index 00000000..576ac109 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/installCheck.html b/src/main/webapp/innorix_2/exam/installCheck.html new file mode 100644 index 00000000..5e93bdd9 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/installCheck.html @@ -0,0 +1,78 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/postParam.html b/src/main/webapp/innorix_2/exam/postParam.html new file mode 100644 index 00000000..97ab4a25 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/postParam.html @@ -0,0 +1,53 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/result.jsp b/src/main/webapp/innorix_2/exam/result.jsp new file mode 100644 index 00000000..6ff8ee5b --- /dev/null +++ b/src/main/webapp/innorix_2/exam/result.jsp @@ -0,0 +1,18 @@ +← 예제 목록

    + +<% +request.setCharacterEncoding("UTF-8"); +java.util.Enumeration names = request.getParameterNames(); + +while (names.hasMoreElements()) { + String name = (String)names.nextElement(); + String values[] = request.getParameterValues(name); + + if (values != null) { + for (int i=0; i< values.length; i++) { + System.out.println ( i + ". " + name + " = " + values[i]); + out.println ( i + ". " + name + " = " + values[i] + "
    "); + } + } +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/sample-file.pdf b/src/main/webapp/innorix_2/exam/sample-file.pdf new file mode 100644 index 00000000..fe199e0f Binary files /dev/null and b/src/main/webapp/innorix_2/exam/sample-file.pdf differ diff --git a/src/main/webapp/innorix_2/exam/upload.html b/src/main/webapp/innorix_2/exam/upload.html new file mode 100644 index 00000000..d33a3bf4 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/upload.html @@ -0,0 +1,49 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/upload.jsp b/src/main/webapp/innorix_2/exam/upload.jsp new file mode 100644 index 00000000..2ed19c34 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/upload.jsp @@ -0,0 +1,67 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if (request.getMethod().equals("POST")) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if (uploader.isUploadDone()) { + /* + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + */ + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + System.out.println("_type \t = " + _type); + System.out.println("_part \t = " + _part); +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/uploadCustomTable.html b/src/main/webapp/innorix_2/exam/uploadCustomTable.html new file mode 100644 index 00000000..24650a0b --- /dev/null +++ b/src/main/webapp/innorix_2/exam/uploadCustomTable.html @@ -0,0 +1,164 @@ + + + + + + + + + + + ← 예제 목록

    +
    + + + + + + + + + + + + + +
    filePathfileSizefileType파일명용량구분삭제
    +
    + +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/exam/uploadMulti.html b/src/main/webapp/innorix_2/exam/uploadMulti.html new file mode 100644 index 00000000..31e089a7 --- /dev/null +++ b/src/main/webapp/innorix_2/exam/uploadMulti.html @@ -0,0 +1,84 @@ + + + + + + + + + ← 예제 목록

    +

    + + +

    + +

    + + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnIndex.html b/src/main/webapp/innorix_2/gnIndex.html new file mode 100644 index 00000000..040fa085 --- /dev/null +++ b/src/main/webapp/innorix_2/gnIndex.html @@ -0,0 +1,320 @@ + + + + + + + + GNIT 이노릭스 샘플 목록 + + + + + + + +
    +
    +
    + + + + + + + + + + + + +

    이노릭스는 사용하고 계시는 모드별로 제공되는 기능이 다릅니다. 샘플 비고란을 참고해주세요.

    +
    +

    Agent 모드

    + 사용자 PC에 exe파일로 설치되며, 제공되는 기능이 더 많습니다. (agent : true) +
    +
    +
    +

    Html5 모드

    + 무설치형으로 파일전송을 이용하며, 제약되는 기능이 있습니다. (agent : false) +
    +
    +
    + +

    이노릭스제공 기본예제로 이동

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    No기능설명샘플비고
    01 +

    업로드 파일 첨부 시 정책 설정

    + 전체 파일개수, 첨부할 확장자제한/허용, 개별파일 사이즈, 전체파일 사이즈, 중복파일 첨부여부 등을 제어 +
    샘플보기 + + +
    02 +

    전송 오류 시 전송 간격 및 횟수 설정

    + retryCount, retryDelay, maximumErrorCount 옵션 사용방법 +
    샘플보기 + +
    03 +

    (클라이언트→서버) 업로드 시 추가 데이터 전송

    + setPostData, setFilePostDataByIndex를 이용하여 클라이언트단에서 서버단으로 추가 데이터 전송 +
    샘플보기 + + +
    04 +

    (서버→클라이언트) 업로드 시 커스텀 벨류 전송

    + setCustomValue를 이용하여 서버단에서 클라이언트단으로 커스텀 벨류 전송 +
    샘플보기 + + +
    05 +

    업로드 시 경로 설정 및 저장 파일명 변경

    + 업로드되는 서버의 경로 설정 및 저장 파일명 변경 방법 +
    샘플보기 + + +
    06 +

    (서버→클라이언트) 업로드 시 커스텀 에러 전송

    + 업로드 시 서버측 에러메세지 및 에러코드를 클라이언트측으로 반환 +
    샘플보기 + +
    07 +

    (서버→클라이언트) 다운로드 시 커스텀 에러 전송

    + 다운로드 중 서버측 에러메세지 및 에러코드를 클라이언트측으로 반환 +
    샘플보기 + +
    08 +

    다운로드 완료 시 처리방법 예제

    + 다운로드가 완료된 후, 후처리가 필요할 때 처리방법 +
    샘플보기 + +
    09 +

    폴더구조 첨부 제한, 서버에 폴더구조 업로드 제어

    + 폴더 구조 첨부를 제한하고, 폴더 구조 업로드를 제한할 때 처리방법 +
    샘플보기 + +
    10 +

    컨트롤 UI의 폴더 트리구조 관련 옵션 사용 예제

    + 폴더구조를 첨부할 때 보여지는 트리구조 제어(showFolderItems, showFolderItemsTree 사용방법) +
    샘플보기 + +
    11 +

    폴더구조의 파일로 다운로드 구성 예제

    + 폴더구조의 파일로 다운로드 목록을 구성(presetDownloadFiles)하는 방법 +
    샘플보기 + +
    12 +

    폴더구조 파일 combine예제

    + 폴더구조의 파일을 업로드하고, 업로드한 파일로 다운로드 목록이 구성되게 하는 예제 +
    샘플보기 + +
    13 +

    사용자가 다운로드 경로 지정, 다운로드 완료 후 탐색기열기

    + 사용자가 다운로드될 경로를 지정할 수 있고, 다운로드 완료 후 탐색기를 열어줄 수 있는 예제 +
    샘플보기 + +
    14 +

    전송 조각 사이즈변경, 세션 개수 설정

    + 기본 조각 사이즈 2MB, 세션 16개가 적용되어있고 이를 수정가능 +
    샘플보기 + + +
    15 +

    컨트롤 파일목록의 선택, 이동, 삭제 아이콘 제어

    + 컨트롤에 첨부된 파일목록의 기능 아이콘을 제어하는 showSelectBox, showFuncBtn 옵션 사용방법 +
    샘플보기 + + +
    16 +

    출력 메세지 언어 전환(한/영)

    + 출력되는 메세지는 기본 영문으로, 이를 한글로 설정하는 방법 +
    샘플보기 + + +
    17 +

    컨트롤 옵션 동적 설정 예제

    + 컨트롤 옵션을 setOption을 통해 설정하는 방법 +
    샘플보기 + + +
    18 +

    컨트롤 동적 생성 예제

    + 동적으로 컨트롤을 생성하고 제어하는 방법 +
    샘플보기 + + +
    19 +

    Html5모드 다운로드 요청 간격 설정

    + Html5모드에서 다운로드 시 downloadDelay옵션을 이용한 다운로드 딜레이 설정 방법 +
    샘플보기 + +
    20 +

    업로드 완료 시 클라이언트단에 서버경로 숨김처리

    + setHideServerPathInfo 메소드를 이용해 업로드 간 메타정보 상 노출되는 서버 경로를 숨기기 위한 방법 +
    샘플보기 + +
    21 +

    첨부파일 압축 업로드 및 압축해제 다운로드 예제

    + isCompress 메소드를 이용해 업로드시 서버에 압축하여 저장 및, setAutoDecompress이용하여 다운시 자동 압축해제 +
    샘플보기 + +
    +
    + + + +
    +
    + +
    +

    추가 문의사항은 innorix@gnit.co.kr로 보내주시길 바랍니다.

    + TOP +
    + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/agentImageUpload.html b/src/main/webapp/innorix_2/gnexam/agentImageUpload.html new file mode 100644 index 00000000..6e3c43b9 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/agentImageUpload.html @@ -0,0 +1,89 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/agentPreviewImgAll.html b/src/main/webapp/innorix_2/gnexam/agentPreviewImgAll.html new file mode 100644 index 00000000..6e6c5b5f --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/agentPreviewImgAll.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + ← 예제 목록

    + +

    + + + + + +
    + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/changeFileName.html b/src/main/webapp/innorix_2/gnexam/changeFileName.html new file mode 100644 index 00000000..5d627bf5 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/changeFileName.html @@ -0,0 +1,55 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/changeFileName.jsp b/src/main/webapp/innorix_2/gnexam/changeFileName.jsp new file mode 100644 index 00000000..8caa9a77 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/changeFileName.jsp @@ -0,0 +1,69 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@ page import="java.util.UUID" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + + + // 파일정보 확인 + if("getFileInfo".equals(_action)) { + /* + 업로드 시 서버에 저장되는 파일 명 변경 (해당 예제는 랜덥값으로 서버에 저장되는 파일명을 설정) + - uploader.setFileName(파일명+확장자); + - 확장자 변경 시 파일은 열리지 않게 됩니다. + - upload.run()전에 위치 + */ + String saveNm = UUID.randomUUID()+".jpg"; + uploader.setFileName(saveNm); + } + + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + /* + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_filepath \t = " + _filepath); + */ + } + +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/changeTransferMode.html b/src/main/webapp/innorix_2/gnexam/changeTransferMode.html new file mode 100644 index 00000000..1c005ccb --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/changeTransferMode.html @@ -0,0 +1,61 @@ + + + + + + + + + + +
    +
    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/combine.html b/src/main/webapp/innorix_2/gnexam/combine.html new file mode 100644 index 00000000..d4b43245 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/combine.html @@ -0,0 +1 @@ + ← 예제 목록


    | \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/combineTest.html b/src/main/webapp/innorix_2/gnexam/combineTest.html new file mode 100644 index 00000000..58b197b0 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/combineTest.html @@ -0,0 +1 @@ + ← 예제 목록


    \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/compressCombine.html b/src/main/webapp/innorix_2/gnexam/compressCombine.html new file mode 100644 index 00000000..25443313 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/compressCombine.html @@ -0,0 +1,54 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + | + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/compressDownload.jsp b/src/main/webapp/innorix_2/gnexam/compressDownload.jsp new file mode 100644 index 00000000..ea8224d9 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/compressDownload.jsp @@ -0,0 +1,144 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); + +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String sysFileName = new String(); +String orgFileName = new String(); +String htmlMode = request.getParameter("_Html5"); + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "dataCompress/" + fileName; + orgFileName = "dataCompress/" + fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/compressUpload.jsp b/src/main/webapp/innorix_2/gnexam/compressUpload.jsp new file mode 100644 index 00000000..d12aca7c --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/compressUpload.jsp @@ -0,0 +1,75 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if (request.getMethod().equals("POST")) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "dataCompress"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _controlId = uploader.getParameter("_controlId"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("_type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("_part"); // 커스텀 정의 POST Param 2 + String _subdir = uploader.getParameter("_subdir"); // 커스텀 정의 POST Param 3 + String _md5 = uploader.getParameter("_integrity_md5"); // md5 해시값 + + uploader.setAutoDecompress(true, false); //압축파일 자동 압축해제하여 서버에 저장, 압축해제 후 압축파일 삭제 + + String _run_retval = uploader.run(); + + + + // 개별파일 업로드 완료 + if (uploader.isUploadDone()) { + /* + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_controlId \t = " + _controlId); + */ + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_controlId \t = " + _controlId); + System.out.println("_type \t = " + _type); + System.out.println("_part \t = " + _part); + System.out.println("_md5 \t = " + _md5); + +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/css/gnit.css b/src/main/webapp/innorix_2/gnexam/css/gnit.css new file mode 100644 index 00000000..a4c5f85e --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/css/gnit.css @@ -0,0 +1,88 @@ +@charset "utf-8"; +/* RESET CSS */ +html, body, div, span, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, address, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, dl, dt, dd, menu, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +main, menu, nav, output, ruby, section, summary{font-family: 'NanumBarunGothic',sans-serif !important;margin: 0;padding: 0;border: 0;font: inherit;vertical-align: baseline;} +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section {display: block;} +body {line-height: 1;} +menu, ol, ul, li {list-style: none;} +table {border-collapse: collapse;border-spacing: 0;} +a {color: #333;text-decoration: none;cursor: pointer;font-size:inherit;} +em {color: #73b644; font-weight: bold;} +i {font-style: italic;display: inline;} + +.clear {clear: both;display: block;height: 0;overflow: hidden;visibility: hidden;width: 0;} + + +/* GNIT SAMPLE CSS */ +html, body{min-width: 900px;} +#header{width: 100%; height: 70px; background-color: #73b644; border-bottom: 2px solid #539426; box-sizing: border-box; text-align: center;} +#header img{display: inline-block; height: 40px; padding:15px 20px; vertical-align: middle;} +#header h1{display: inline-block; font-size: 22px; color: #fff; font-weight: bold;} + +#footer{width: 100%; height: 70px; background-color: #eff4e5; box-sizing: border-box; padding: 45px 0; border-top: 1px solid #539426;} +#footer p{color: #333; text-align: center;} +#footer .top_btn{ + display: block; width: 50px; height: 50px; + background:url('../img/top_btn.jpg') 0 0 no-repeat; text-indent: -99999px; + position: fixed; bottom: 40px; right: 0; +} + +.section{width: 100%; height: auto; background-color: #fdfdfd;} +.section .cont-wrap{width: 100%; padding: 40px; box-sizing: border-box; max-width: 1300px; margin:0 auto;} + +.notice-tb{width: 100%; table-layout: fixed;} +.notice-tb th, .notice-tb td{padding: 15px 30px;} +.notice-wrap{padding-bottom: 20px; box-sizing: border-box;} +.notice-txt p{font-size: 18px; color:#2b3a58;} +.notice-txt p::before{ + content: ""; display: inline-block; width: 60px; height: 50px; + vertical-align: middle; background: url(../img/notice.png) no-repeat; background-size: contain; +} +.notice{padding-bottom: 20px; } +.notice p{padding-bottom: 8px; font-size: 16px; font-weight: bold;} +.notice img{width: 24px; vertical-align: text-bottom; padding-right: 5px;} +.notice span{font-size: 15px; display: block; padding: 5px;} +.notice span::before{content: "-"; display: inline-block; width: 14px;} +.notice-a p{color: #005DA6;} +.notice-h p{color: #fb843f;} + +.notice-pdf img{width: 20px; padding: 0 10px 0 2px;} +.notice-pdf p{color: #444;} +.notice-pdf a:hover{text-decoration: underline; color: #0f6fb9;} + +.origin-exam{font-size: 14px; color: #666; text-align: right;} +.origin-exam a:hover{text-decoration: underline; color: #0f6fb9;} + +/* (공통)목록 table */ +/* .list-tb{counter-reset: tr 0;} */ +/* .list-tb tr td:first-child::before{counter-increment: tr 1; content:counter(tr) '';} */ +.list-tb{width: 100%; table-layout: fixed; border-top: 3px solid #539426; margin: 20px 0 50px; font-size: 15px;} +.list-tb th, .list-tb td{border-right: 1px solid #cecece; text-align: center; padding:12px 18px; line-height: 24px; vertical-align:middle; background-color: #fff; word-break:break-all;} +.list-tb th:last-child, .list-tb td:last-child{border:none;} +.list-tb th{background-color: #eff4e5; font-size: 16px; color: #333; font-weight: bold;} +.list-tb td.ta_l{text-align: left;} +.list-tb td.ta_r{text-align: right;} +.list-tb td p{font-size: 16px;} +.list-tb td > img{width: 24px; padding: 0 5px; vertical-align: middle;} +.list-tb td a:hover{ text-decoration:underline;} +.list-tb tr{border-bottom: 1px solid #cecece;} +.list-tb tr:last-child{border-bottom: 2px solid #539426;} + +.refer{color: #999; font-size: 14px;} + +.exam-link{border-radius: 5px; } +.exam-link::before{content: ""; display: inline-block; width: 22px; height: 18px; +vertical-align: middle; background: url(../img/code.png) no-repeat; background-size: contain;} +.exam-link:hover{color: #0f6fb9;} + + + + diff --git a/src/main/webapp/innorix_2/gnexam/dbClickDownloadAndOpen.html b/src/main/webapp/innorix_2/gnexam/dbClickDownloadAndOpen.html new file mode 100644 index 00000000..4182d0da --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/dbClickDownloadAndOpen.html @@ -0,0 +1 @@ + ← 예제 목록


    \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/debugDropZone.html b/src/main/webapp/innorix_2/gnexam/debugDropZone.html new file mode 100644 index 00000000..a29501e0 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/debugDropZone.html @@ -0,0 +1,57 @@ + + + + + + + + + ← 예제 목록

    +

    설정된 드랍존 영역을 확인하는 방법 - 파일을 드래그하여 드랍존 영역을 확인할 수 있습니다.

    + +

    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/deleteFileInfo.html b/src/main/webapp/innorix_2/gnexam/deleteFileInfo.html new file mode 100644 index 00000000..5d6ffed0 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/deleteFileInfo.html @@ -0,0 +1,71 @@ + + + + + + + + + + ← 예제 목록

    +

    삭제한 파일정보를 서버에 출력 - 삭제한 파일정보를 확인할 수 있습니다. 선택삭제 후 업로드를 진행해주세요.

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/deleteServer.jsp b/src/main/webapp/innorix_2/gnexam/deleteServer.jsp new file mode 100644 index 00000000..3d068c11 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/deleteServer.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@page import="java.io.File" %> +<% +request.setCharacterEncoding("UTF-8"); +String[] strDeletedID = request.getParameterValues("_innorix_deleted_id"); // 삭제된 파일ID +String[] strDeletedName = request.getParameterValues("_innorix_deleted_name"); // 삭제된 파일이름 +String[] strDeletedSize = request.getParameterValues("_innorix_deleted_size"); // 삭제된 파일용량 +for(int i=0; i"); + out.println("삭제된 " + i + "번째 name= " + strDeletedName[i] + "
    "); + out.println("삭제된 " + i + "번째 size= " + strDeletedSize[i] + "
    "); +} +%> +← 예제 목록

    \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/download.html b/src/main/webapp/innorix_2/gnexam/download.html new file mode 100644 index 00000000..caccc7f8 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/download.html @@ -0,0 +1,88 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/download.jsp b/src/main/webapp/innorix_2/gnexam/download.jsp new file mode 100644 index 00000000..ef32ae3a --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/download.jsp @@ -0,0 +1,143 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); + +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String sysFileName = new String(); +String orgFileName = new String(); + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadAfterRemoveFileView.jsp b/src/main/webapp/innorix_2/gnexam/downloadAfterRemoveFileView.jsp new file mode 100644 index 00000000..e3f6e445 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadAfterRemoveFileView.jsp @@ -0,0 +1,76 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + + + + + + + + ← 예제 목록

    + +

    + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadComplete.jsp b/src/main/webapp/innorix_2/gnexam/downloadComplete.jsp new file mode 100644 index 00000000..bab75595 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadComplete.jsp @@ -0,0 +1,186 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="com.innorix.transfer.InnorixTransfer" %> +<%@ page import="org.json.JSONArray" %> +<%@ page import="org.json.JSONObject" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); + +String method = request.getMethod(); + +/* + 파일 다운로드 완료 시 받은 정보 출력을 위해 아래와 같이 구성. + 다운로드 시에는 GET / 다운로드 완료 시에는 POST 동사로 분리하여 구성. +*/ + +if (method.equals("POST")) +{ + InnorixTransfer innorixTransfer = new InnorixTransfer(request, response); + + String _action = innorixTransfer.getParameter("_action"); + innorixTransfer.Save(); + + if (_action.equals("downloadCompleted")) + { + String fileInfo = innorixTransfer.getParameter("_fileInfoList"); + JSONArray jsonFileInfoList = new JSONArray(fileInfo); + for (int index = 0; index < jsonFileInfoList.length(); ++index) { + JSONObject jsonFileInfo = jsonFileInfoList.getJSONObject(index); + String fileName = jsonFileInfo.getString("fileName"); + String downloadFileName = jsonFileInfo.getString("downloadFileName"); + String downloadFilePath = jsonFileInfo.getString("downloadFilePath"); + int fileSize = jsonFileInfo.getInt("fileSize"); + String subFolder = jsonFileInfo.getString("subFolder"); + String fileId = jsonFileInfo.getString("fileId"); + boolean isFolder = jsonFileInfo.getBoolean("isFolder"); + + System.out.println("-----downloadCompleted-------"); + System.out.println("fileName : " + fileName ); + System.out.println("downloadFileName : " + downloadFileName ); + System.out.println("downloadFilePath : " + downloadFilePath ); + System.out.println("fileSize : " + fileSize ); + System.out.println("subFolder : " + subFolder ); + System.out.println("fileId : " + fileId ); + System.out.println("isFolder : " + isFolder ); + } + } +}else if (method.equals("GET")) +{ + String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); + String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + + /* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data + */ + + // downloadType : "stream" 설정시 자동 전달되는 GET Param 값 + String szStartOffset = request.getParameter("_StartOffset"); + String szEndOffset = request.getParameter("_EndOffset"); + + // 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 + String fileID = request.getParameter("fileID"); + String fileName = request.getParameter("fileName"); + String sysFileName = new String(); + String orgFileName = new String(); + + if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } + } + + if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = "data/" + fileName; + } + + // 파일명 깨짐대응 문자열 인코딩 처리 + orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + + File file = new File(filePath + sysFileName); + + response.setContentType("application/octet-stream"); + response.setHeader("Accept-Ranges", "bytes"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + + long startOffset = 0; + long endOffset = 0; + + if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); + } + + if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); + } + + long contentLength = 0; + + if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; + } else { // html 일반 다운로드 요청시 + contentLength = file.length(); + } + + response.setHeader("Content-Length", "" + contentLength); + + byte b[] = new byte[8192]; + BufferedInputStream input = null; + BufferedOutputStream output = null; + + try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); + } catch(Exception e) { + e.printStackTrace(); + } finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } + } +} +%> +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadCompleted.html b/src/main/webapp/innorix_2/gnexam/downloadCompleted.html new file mode 100644 index 00000000..f680d522 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadCompleted.html @@ -0,0 +1,69 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadCustomError.html b/src/main/webapp/innorix_2/gnexam/downloadCustomError.html new file mode 100644 index 00000000..d25e7de8 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadCustomError.html @@ -0,0 +1,79 @@ + + + + + + + + + + ← 예제 목록
    +

    * 2번째 / 3번째 파일을 클릭하여 다운로드 시 downloadError 확인 가능합니다.

    +

    * 1번째 파일 클릭 시 정상 다운로드

    +

    + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadCustomError.jsp b/src/main/webapp/innorix_2/gnexam/downloadCustomError.jsp new file mode 100644 index 00000000..dac77fee --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadCustomError.jsp @@ -0,0 +1,178 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="com.innorix.transfer.InnorixCustomError"%> + +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String sysFileName = new String(); +String orgFileName = new String(); + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { +// sysFileName = "sample-file.pdf"; + sysFileName = "sample-file.app"; // ※ (오류) 실제 없는 파일 + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { +// sysFileName = "sample-file.pdf"; + sysFileName = "sample-file.app"; // ※ (오류) 실제 없는 파일 + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + out.clear(); + out=pageContext.pushBody(); + + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + response.setHeader("Content-Length", "" + contentLength); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("contentLength \t: "+contentLength); + System.out.println("startOffset \t: " + startOffset); + System.out.println("read \t: "+read); + System.out.println("endOffset \t: " + endOffset); + + } + } + + +} catch(Exception e) { + e.printStackTrace(); + + /* + downloadCustomError + 에러코드, 에러메시지, 에러타이틀 설정 + + customError.set(Error Code, Error Message, Error Title, retry); // 커스텀 에러 설정 + * Error Code 설정 시 1000번대로 설정하는 것을 권장합니다. + * 너무 크거나 너무 작을 경우 다른 코드들과의 충돌로 정상 작동이 되지 않을 수 있습니다. + + customError.run(); // 커스텀 에러 실행 + */ + + response.setStatus(404); + InnorixCustomError customError = new InnorixCustomError(response); + customError.set("1004", "Download Error", "File Download Error", false); + + // output이 getOutputStream을 이용하고 있을 시 output을 이용해서 커스텀 에러를 전송 + if (output != null){ + output.write(customError.runAction().getBytes("UTF-8")); + }else{ + customError.run(); + } + +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadDelay.html b/src/main/webapp/innorix_2/gnexam/downloadDelay.html new file mode 100644 index 00000000..e745a9f5 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadDelay.html @@ -0,0 +1,55 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadDeleteSession.jsp b/src/main/webapp/innorix_2/gnexam/downloadDeleteSession.jsp new file mode 100644 index 00000000..20cf3a4e --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadDeleteSession.jsp @@ -0,0 +1,172 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="com.innorix.transfer.InnorixCustomValue"%> +<%@ page import="com.innorix.transfer.InnorixTransfer" %> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="org.json.JSONArray" %> +<%@ page import="org.json.JSONObject" %> +<%@ page import="java.io.*" %> + +<% +request.setCharacterEncoding("utf-8"); + +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String getuniqueId = request.getParameter("uniqueId"); //유니크 아이디 +String fileName = request.getParameter("fileName"); + +String html5 = request.getParameter("_Html5"); + +String sysFileName = new String(); +String orgFileName = new String(); + +String fileFullPath = (String)session.getAttribute(getuniqueId); //파일 절대 경로 취득 +session.setAttribute(getuniqueId, fileFullPath); + +if (fileName != null) { + orgFileName = fileName; +} + +File file = null; + +if (fileFullPath != null){ + file = new File(fileFullPath); +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; +try { + out.clear(); + out=pageContext.pushBody(); + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("uniqueId \t: " + getuniqueId); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); + System.out.println("_Html5 \t : " + html5); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } + + if("true".equals(html5)){ //html5 모드 일때 + session.removeAttribute(getuniqueId); //세션 삭제 + File f = new File(fileFullPath); //파일 경로 + System.out.println(f); + if(f.exists()){ + if(f.delete()){ + System.out.println("파일삭제 성공"); + + }else{ + System.out.println("파일삭제 실패"); + } + }else{ + System.out.println("파일 없음"); + } + + }else{ //Agent 모드 일때 + session.removeAttribute(getuniqueId); + File f = new File(fileFullPath); + System.out.println(f); + if(f.exists()){ + if(f.delete()){ + System.out.println("파일삭제 성공"); + }else{ + System.out.println("파일삭제 실패"); + } + }else{ + System.out.println("파일 없음"); + } + } +} + + +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadIntegrity.html b/src/main/webapp/innorix_2/gnexam/downloadIntegrity.html new file mode 100644 index 00000000..5057686a --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadIntegrity.html @@ -0,0 +1,55 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadIntegrity.jsp b/src/main/webapp/innorix_2/gnexam/downloadIntegrity.jsp new file mode 100644 index 00000000..bf7e4727 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadIntegrity.jsp @@ -0,0 +1,177 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%-- 1. Integrity 패키지 추가 --%> +<%@ page import="com.innorix.integrity.Integrity" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); + +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +String szIntegrity = request.getParameter("_Integrity"); // 파라미터를 통해 이중 무결성 여부 확인 + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String sysFileName = new String(); +String orgFileName = new String(); + +/* + 다운로드 이중 무결성 (※ Agent 모드 전용 옵션) + '_Integity' 파라미터를 확인해서 이중 무결성 여부 확인 + 이중 무결성 로직을 추가하지 않았을 경우에 비해 다운로드 속도가 저하됩니다. +*/ +boolean isIntegrity = false; +if (szIntegrity != null && szIntegrity.equalsIgnoreCase("true")) { + System.out.println("szIntegrity :"+szIntegrity); + isIntegrity = true; +} + + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = "data/" + fileName; +} + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +// 응답 데이터 수정 +if (isIntegrity) { + Integrity integrity = new Integrity(); + String md5 = new String(); + try { + // getMD5FromFileSlice() 메소드 리턴 값을 response에 write 해줍니다. + md5 = integrity.getMD5FromFileSlice(filePath + sysFileName, startOffset, endOffset); + } + catch(Exception e) { + } + + response.setStatus(200); + response.getWriter().write(md5); + response.getWriter().flush(); + response.getWriter().close(); + return ; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/downloadPath.html b/src/main/webapp/innorix_2/gnexam/downloadPath.html new file mode 100644 index 00000000..fd7aeaaa --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/downloadPath.html @@ -0,0 +1,51 @@ + + + + + + + + + + ← 예제 목록

    + +
    + +

    + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/dynamicCreate.html b/src/main/webapp/innorix_2/gnexam/dynamicCreate.html new file mode 100644 index 00000000..bb3110e3 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/dynamicCreate.html @@ -0,0 +1,101 @@ + + + + + + + + + +

    동적으로 여러개의 컨트롤 생성 후 통합 업로드

    + + +
    + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/errorRetryCount.html b/src/main/webapp/innorix_2/gnexam/errorRetryCount.html new file mode 100644 index 00000000..4866cfed --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/errorRetryCount.html @@ -0,0 +1,99 @@ + + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/folderCombine.html b/src/main/webapp/innorix_2/gnexam/folderCombine.html new file mode 100644 index 00000000..05f7450c --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/folderCombine.html @@ -0,0 +1,70 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + | + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/folderCombine.jsp b/src/main/webapp/innorix_2/gnexam/folderCombine.jsp new file mode 100644 index 00000000..8d5152c3 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/folderCombine.jsp @@ -0,0 +1,148 @@ +<%@page import="com.innorix.transfer.InnorixCustomError"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1) + "data/"; +// String filePath ="C:/Users/007/innorix/innorix/src/main/webapp/innorix/exam/data/"; +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName");//FileName 파라메터 값 +String rootName = request.getParameter("rootName");//rootName 파라메터 값 + + +String sysFileName = new String(); +String orgFileName = new String(); +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = rootName +"/" + fileName; + orgFileName = fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; +try { + if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("fileName \t: " + fileName); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); + } +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/folderDownload.html b/src/main/webapp/innorix_2/gnexam/folderDownload.html new file mode 100644 index 00000000..cc719857 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/folderDownload.html @@ -0,0 +1,97 @@ + + + + + + + + + ← 예제 목록

    +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/folderDownload.jsp b/src/main/webapp/innorix_2/gnexam/folderDownload.jsp new file mode 100644 index 00000000..6f4e1195 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/folderDownload.jsp @@ -0,0 +1,144 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); + +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String rootName = request.getParameter("rootName"); +String sysFileName = new String(); +String orgFileName = new String(); + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/"+rootName+"/" + fileName; + orgFileName = fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/folderIntact.html b/src/main/webapp/innorix_2/gnexam/folderIntact.html new file mode 100644 index 00000000..831682f6 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/folderIntact.html @@ -0,0 +1,58 @@ + + + + + + + + + ← 예제 목록

    + +

    + + | + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/hideServerPathInfo.html b/src/main/webapp/innorix_2/gnexam/hideServerPathInfo.html new file mode 100644 index 00000000..b2e99239 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/hideServerPathInfo.html @@ -0,0 +1,49 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/hideServerPathInfo.jsp b/src/main/webapp/innorix_2/gnexam/hideServerPathInfo.jsp new file mode 100644 index 00000000..04ccd2dc --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/hideServerPathInfo.jsp @@ -0,0 +1,71 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%-- File import --%> +<%@page import="java.io.File"%> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + + /* + 업로드 간 메타정보 상 노출되는 서버 경로를 숨기기 위한 방법 + ( 업로드 완료 시 클라이언트에 서버에 저장된 파일의 절대 경로가 노출되기 때문에 보안 상 노출이 안 되도록 설정 ) + uploader.setHideServerPathInfo(true); + - uploader.run() 이전에 설정 + - 해당 설정 시 파일 전송 간 발생되는 통신 구간에서는 서버 경로 정보를 주고 받지 않기 위해 + InnorixUplaod 클래스를 객체화 할 때 지정해주는 directory 값을 고정으로 업로드하며, setDirectory와 함께 사용할 수 없음 + */ + + uploader.setHideServerPathInfo(true); //업로드 서버경로 숨김처리 + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); // 원본 파일명 + System.out.println("_new_filename \t = " + _new_filename); // 저장 파일명 + + /* 업로드 서버 경로 숨김처리 시 저장경로 확인 방법 */ + System.out.println("_filepath \t = " + _filepath); // 파일 저장경로 (업로드 서버 경로 숨김처리하여 빈값으로 출력) + String strDir = uploader.getDirectory(); // 서버에 저장되는 폴더경로 + System.out.println("strDir \t = " + strDir); + String strSrvFilePath = strDir.concat(File.separator).concat(_new_filename); + System.out.println("strSrvFilePath \t = " + strSrvFilePath); //서버에 저장된 파일 위치 + } + +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/html5ImageUpload.html b/src/main/webapp/innorix_2/gnexam/html5ImageUpload.html new file mode 100644 index 00000000..e7ea5f19 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/html5ImageUpload.html @@ -0,0 +1,88 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/html5PreviewImgAll.html b/src/main/webapp/innorix_2/gnexam/html5PreviewImgAll.html new file mode 100644 index 00000000..be926e26 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/html5PreviewImgAll.html @@ -0,0 +1,114 @@ + + + + + + + + + + + ← 예제 목록

    + +

    + + + + + +
    + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/iframe.html b/src/main/webapp/innorix_2/gnexam/iframe.html new file mode 100644 index 00000000..3c9db540 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/iframe.html @@ -0,0 +1,15 @@ + + + + + + + +Insert title here + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/img/agent.png b/src/main/webapp/innorix_2/gnexam/img/agent.png new file mode 100644 index 00000000..ffd33f21 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/agent.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/close-blue.png b/src/main/webapp/innorix_2/gnexam/img/close-blue.png new file mode 100644 index 00000000..442d9ad1 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/close-blue.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/code.png b/src/main/webapp/innorix_2/gnexam/img/code.png new file mode 100644 index 00000000..0c76bd12 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/code.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/dropzone.png b/src/main/webapp/innorix_2/gnexam/img/dropzone.png new file mode 100644 index 00000000..101817b4 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/dropzone.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/favicon.ico b/src/main/webapp/innorix_2/gnexam/img/favicon.ico new file mode 100644 index 00000000..912d8b81 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/favicon.ico differ diff --git a/src/main/webapp/innorix_2/gnexam/img/gnlogo.png b/src/main/webapp/innorix_2/gnexam/img/gnlogo.png new file mode 100644 index 00000000..2d1e9eb7 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/gnlogo.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/gnlogo_w_png.png b/src/main/webapp/innorix_2/gnexam/img/gnlogo_w_png.png new file mode 100644 index 00000000..9452e3f0 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/gnlogo_w_png.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/html5.png b/src/main/webapp/innorix_2/gnexam/img/html5.png new file mode 100644 index 00000000..142200ba Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/html5.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/innorix_control_list_checkbox.png b/src/main/webapp/innorix_2/gnexam/img/innorix_control_list_checkbox.png new file mode 100644 index 00000000..bc448708 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/innorix_control_list_checkbox.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/move-blue.png b/src/main/webapp/innorix_2/gnexam/img/move-blue.png new file mode 100644 index 00000000..87a5b20c Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/move-blue.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/notice.png b/src/main/webapp/innorix_2/gnexam/img/notice.png new file mode 100644 index 00000000..d06bdf20 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/notice.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/pdf.png b/src/main/webapp/innorix_2/gnexam/img/pdf.png new file mode 100644 index 00000000..8f8095e4 Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/pdf.png differ diff --git a/src/main/webapp/innorix_2/gnexam/img/top_btn.jpg b/src/main/webapp/innorix_2/gnexam/img/top_btn.jpg new file mode 100644 index 00000000..9669e0de Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/img/top_btn.jpg differ diff --git a/src/main/webapp/innorix_2/gnexam/installCheckPage.html b/src/main/webapp/innorix_2/gnexam/installCheckPage.html new file mode 100644 index 00000000..3ba17e41 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/installCheckPage.html @@ -0,0 +1,68 @@ + + + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/installPopup.html b/src/main/webapp/innorix_2/gnexam/installPopup.html new file mode 100644 index 00000000..3e1ce58c --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/installPopup.html @@ -0,0 +1,85 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/isTempFileSize.html b/src/main/webapp/innorix_2/gnexam/isTempFileSize.html new file mode 100644 index 00000000..814dd285 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/isTempFileSize.html @@ -0,0 +1,67 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/pdfPreview.html b/src/main/webapp/innorix_2/gnexam/pdfPreview.html new file mode 100644 index 00000000..3e845a56 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/pdfPreview.html @@ -0,0 +1,54 @@ + + + + + + + + + + + ← 예제 목록

    + +

    + + + | + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/postData.html b/src/main/webapp/innorix_2/gnexam/postData.html new file mode 100644 index 00000000..68d743f2 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/postData.html @@ -0,0 +1,74 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/postData.jsp b/src/main/webapp/innorix_2/gnexam/postData.jsp new file mode 100644 index 00000000..fd342e7d --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/postData.jsp @@ -0,0 +1,56 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + + String fileParam1 = uploader.getParameter("fileParam1"); // 파일 별 커스텀 정의 POST Param 1 + String fileParam2 = uploader.getParameter("fileParam2"); // 파일 별 커스텀 정의 POST Param 2 + String transParam1 = uploader.getParameter("transParam1"); // 전송 별 커스텀 정의 POST Param 3 + String transParam2 = uploader.getParameter("transParam2"); // 전송 별 커스텀 정의 POST Param 4 + + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("트랜잭션별 \t transParam1 : " + transParam1 + ", transParam2 : " + transParam2); + System.out.println("파일별 \t fileParam1 : " + fileParam1 + ", fileParam2 : " + fileParam2); + } + + + +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/result.jsp b/src/main/webapp/innorix_2/gnexam/result.jsp new file mode 100644 index 00000000..09a13dbd --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/result.jsp @@ -0,0 +1,18 @@ +← 예제 목록

    + +<% +request.setCharacterEncoding("UTF-8"); +java.util.Enumeration names = request.getParameterNames(); + +while (names.hasMoreElements()) { + String name = (String)names.nextElement(); + String values[] = request.getParameterValues(name); + + if (values != null) { + for (int i=0; i< values.length; i++) { + System.out.println ( i + ". " + name + " = " + values[i]); + out.println ( i + ". " + name + " = " + values[i] + "
    "); + } + } +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/sample-file.pdf b/src/main/webapp/innorix_2/gnexam/sample-file.pdf new file mode 100644 index 00000000..fe199e0f Binary files /dev/null and b/src/main/webapp/innorix_2/gnexam/sample-file.pdf differ diff --git a/src/main/webapp/innorix_2/gnexam/setAddFilePolicy.html b/src/main/webapp/innorix_2/gnexam/setAddFilePolicy.html new file mode 100644 index 00000000..18f8336b --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setAddFilePolicy.html @@ -0,0 +1,96 @@ + + + + + + + + + + ← 예제 목록

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setDownloadDelay.html b/src/main/webapp/innorix_2/gnexam/setDownloadDelay.html new file mode 100644 index 00000000..1e21a3c1 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setDownloadDelay.html @@ -0,0 +1,57 @@ + + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setDownloadPath.html b/src/main/webapp/innorix_2/gnexam/setDownloadPath.html new file mode 100644 index 00000000..a6eb7070 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setDownloadPath.html @@ -0,0 +1,72 @@ + + + + + + + + + + ← 예제 목록

    + +
    현재 다운로드 경로 :
    +
    + +

    + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setErrorRetry.html b/src/main/webapp/innorix_2/gnexam/setErrorRetry.html new file mode 100644 index 00000000..1213fa82 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setErrorRetry.html @@ -0,0 +1,98 @@ + + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setFolderTreeItems.html b/src/main/webapp/innorix_2/gnexam/setFolderTreeItems.html new file mode 100644 index 00000000..0811853e --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setFolderTreeItems.html @@ -0,0 +1,69 @@ + + + + + + + + + ← 예제 목록

    + +

    + + | + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setFuncBtn.html b/src/main/webapp/innorix_2/gnexam/setFuncBtn.html new file mode 100644 index 00000000..61375592 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setFuncBtn.html @@ -0,0 +1,106 @@ + + + + + + + + + + ← 예제 목록

    + +
    +

    control01 - 모든 버튼 출력(기본)

    +

    + + + +
    +

    control02 - 선택박스 미출력, 이동,삭제 출력

    +

    + + + +
    +

    control03 - 선택박스 출력, 삭제 출력

    +

    + + + +
    +

    control04 - 모든 버튼 미출력

    +

    + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setHideServerPathInfo.html b/src/main/webapp/innorix_2/gnexam/setHideServerPathInfo.html new file mode 100644 index 00000000..a3367220 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setHideServerPathInfo.html @@ -0,0 +1,50 @@ + + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setHideServerPathInfo.jsp b/src/main/webapp/innorix_2/gnexam/setHideServerPathInfo.jsp new file mode 100644 index 00000000..04ccd2dc --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setHideServerPathInfo.jsp @@ -0,0 +1,71 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%-- File import --%> +<%@page import="java.io.File"%> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + + /* + 업로드 간 메타정보 상 노출되는 서버 경로를 숨기기 위한 방법 + ( 업로드 완료 시 클라이언트에 서버에 저장된 파일의 절대 경로가 노출되기 때문에 보안 상 노출이 안 되도록 설정 ) + uploader.setHideServerPathInfo(true); + - uploader.run() 이전에 설정 + - 해당 설정 시 파일 전송 간 발생되는 통신 구간에서는 서버 경로 정보를 주고 받지 않기 위해 + InnorixUplaod 클래스를 객체화 할 때 지정해주는 directory 값을 고정으로 업로드하며, setDirectory와 함께 사용할 수 없음 + */ + + uploader.setHideServerPathInfo(true); //업로드 서버경로 숨김처리 + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); // 원본 파일명 + System.out.println("_new_filename \t = " + _new_filename); // 저장 파일명 + + /* 업로드 서버 경로 숨김처리 시 저장경로 확인 방법 */ + System.out.println("_filepath \t = " + _filepath); // 파일 저장경로 (업로드 서버 경로 숨김처리하여 빈값으로 출력) + String strDir = uploader.getDirectory(); // 서버에 저장되는 폴더경로 + System.out.println("strDir \t = " + strDir); + String strSrvFilePath = strDir.concat(File.separator).concat(_new_filename); + System.out.println("strSrvFilePath \t = " + strSrvFilePath); //서버에 저장된 파일 위치 + } + +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setLanguage.html b/src/main/webapp/innorix_2/gnexam/setLanguage.html new file mode 100644 index 00000000..1b6473d4 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setLanguage.html @@ -0,0 +1,75 @@ + + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setOption.html b/src/main/webapp/innorix_2/gnexam/setOption.html new file mode 100644 index 00000000..47860e7c --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setOption.html @@ -0,0 +1,46 @@ + + + + + + + + + + ← 예제 목록

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/setSliceSizeSessionCount.html b/src/main/webapp/innorix_2/gnexam/setSliceSizeSessionCount.html new file mode 100644 index 00000000..f98e7c8d --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/setSliceSizeSessionCount.html @@ -0,0 +1,58 @@ + + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/showTransferFileStatus.html b/src/main/webapp/innorix_2/gnexam/showTransferFileStatus.html new file mode 100644 index 00000000..806f0825 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/showTransferFileStatus.html @@ -0,0 +1,66 @@ + + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/skipAgentCheck.html b/src/main/webapp/innorix_2/gnexam/skipAgentCheck.html new file mode 100644 index 00000000..e17c51ba --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/skipAgentCheck.html @@ -0,0 +1,87 @@ + + + + + + + + + ← 예제 목록

    +

    + + +

    + +

    + + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/skipFileSizeCheck.html b/src/main/webapp/innorix_2/gnexam/skipFileSizeCheck.html new file mode 100644 index 00000000..8ffbad07 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/skipFileSizeCheck.html @@ -0,0 +1,59 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/sliceSizeSession.html b/src/main/webapp/innorix_2/gnexam/sliceSizeSession.html new file mode 100644 index 00000000..1851b7c1 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/sliceSizeSession.html @@ -0,0 +1,62 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/transferCancel.html b/src/main/webapp/innorix_2/gnexam/transferCancel.html new file mode 100644 index 00000000..df746c0a --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/transferCancel.html @@ -0,0 +1,54 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/upDownFolder.html b/src/main/webapp/innorix_2/gnexam/upDownFolder.html new file mode 100644 index 00000000..eec81b00 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/upDownFolder.html @@ -0,0 +1 @@ + ← 예제 목록


    | \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/upDownFolder.jsp b/src/main/webapp/innorix_2/gnexam/upDownFolder.jsp new file mode 100644 index 00000000..ec843892 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/upDownFolder.jsp @@ -0,0 +1,140 @@ +<%@page import="com.innorix.transfer.InnorixCustomError"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% +out.clear(); +out = pageContext.pushBody(); +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String sysFileName = new String(); +String orgFileName = new String(); +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = "data/" + fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = new File(filePath + sysFileName); +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + orgFileName +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("fileName \t: " + fileName); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } +} +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/upload.jsp b/src/main/webapp/innorix_2/gnexam/upload.jsp new file mode 100644 index 00000000..4370b308 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/upload.jsp @@ -0,0 +1,64 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_filepath \t = " + _filepath); + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + System.out.println("_type \t = " + _type); + System.out.println("_part \t = " + _part); +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadAddFileError.html b/src/main/webapp/innorix_2/gnexam/uploadAddFileError.html new file mode 100644 index 00000000..d6a70474 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadAddFileError.html @@ -0,0 +1,101 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadAddFileError_old.html b/src/main/webapp/innorix_2/gnexam/uploadAddFileError_old.html new file mode 100644 index 00000000..c836f35d --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadAddFileError_old.html @@ -0,0 +1,93 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadCustomError.html b/src/main/webapp/innorix_2/gnexam/uploadCustomError.html new file mode 100644 index 00000000..17b28d8e --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadCustomError.html @@ -0,0 +1,81 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadCustomError.jsp b/src/main/webapp/innorix_2/gnexam/uploadCustomError.jsp new file mode 100644 index 00000000..e91f2c96 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadCustomError.jsp @@ -0,0 +1,85 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@ page import="com.innorix.transfer.InnorixCustomError" %> +<%@ page import="java.util.UUID" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + try{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + + + + + String _run_retval = uploader.run(); + + System.out.println("_action \t = " + _action); + System.out.println("uploader.isUploadDone() \t = " + uploader.isUploadDone()); + //getFileInfo 이후 에러발생부터 uploadError이벤트 파라미터에 파일별로 에러메시지가 출력됨 + if(_action.equals("attachFileCompleted")){ + // ※※ 임의의 에러 발생 ※※ (파일 명이 테스트.txt가 아닐 경우 에러 발생) + if(!(_orig_filename.equals("테스트.txt"))){ + uploader.setCustomValue("11","22"); + uploader.sendCustomValue(); + uploader.setCustomError("222", "서버에서에러", "서버에러디테일", false); + System.out.println("여기들어오나?"); + // throw new Exception(); + } + + + if(!uploader.isUploadDone()) { + System.out.println("_orig_filename \t = " + _orig_filename); + throw new Exception("asdasdasd"); + } + } + + + + } catch(Exception e){ + /* + + 커스텀 에러 구성 + InnorixCustomError (※ Agent 모드 전용 옵션) + InnorixCustomError.set(error Code, error Message, error Title, retry); + InnorixCustomError.run(); + + */ + InnorixCustomError customError = new InnorixCustomError(response); + customError.set("12323004", "Test Error Tit", "Test Error Content", false); //에러코드, 에러제목, 에러내용, 재전송여부 (에러 코드는 1000번대사용을 권장합니다.) + customError.run(); + + e.printStackTrace(); + } +} + + + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadCustomValue.html b/src/main/webapp/innorix_2/gnexam/uploadCustomValue.html new file mode 100644 index 00000000..48f23fe1 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadCustomValue.html @@ -0,0 +1,46 @@ + + + + + + + + + ← 예제 목록

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadCustomValue.jsp b/src/main/webapp/innorix_2/gnexam/uploadCustomValue.jsp new file mode 100644 index 00000000..9e905967 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadCustomValue.jsp @@ -0,0 +1,64 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@page import="com.innorix.multipartrequest.MultipartRequest"%> +<%@page import="java.io.File"%> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + + String _run_retval = uploader.run(); + + //개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)){ + /* + 커스텀밸류 구성, 전송 + uploader.setCustomValue(KEY, VALUE); //커스텀 밸류 구성 + uploader.sendCustomValue(); //커스텀 밸류 전송 + */ + uploader.setCustomValue("customKey", "customValue"); // 클라이언트측으로 전달할 key,value값 설정 + uploader.sendCustomValue(); // 클라이언트측으로 key, value값 전달 + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadExtension.html b/src/main/webapp/innorix_2/gnexam/uploadExtension.html new file mode 100644 index 00000000..c24d4154 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadExtension.html @@ -0,0 +1,76 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadIframe.html b/src/main/webapp/innorix_2/gnexam/uploadIframe.html new file mode 100644 index 00000000..f92ece9c --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadIframe.html @@ -0,0 +1,43 @@ + + + + + + + + + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadNotFolder.jsp b/src/main/webapp/innorix_2/gnexam/uploadNotFolder.jsp new file mode 100644 index 00000000..dfa2d19f --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadNotFolder.jsp @@ -0,0 +1,78 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + + uploader.setSaveFolderTree(false); + + /* + 폴더 구조가 아닌 파일만 저장 하려고 하는 경우 + uploader.setSaveFolderTree(false); 옵션을 추가해주면 됩니다. + + ※ 다만, 해당 옵션을 uploader.run() 이전에 위치를 해줘야 폴더 구조로 업로드가 진행되지 않습니다. + ※ uploader.run() 이후에 위치할 경우 폴더 구조로 업로드가 진행됩니다. + */ + + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + System.out.println("_type \t = " + _type); + System.out.println("_part \t = " + _part); +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadRetryCount.html b/src/main/webapp/innorix_2/gnexam/uploadRetryCount.html new file mode 100644 index 00000000..be1a5edf --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadRetryCount.html @@ -0,0 +1,66 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadServerDirChangeName.html b/src/main/webapp/innorix_2/gnexam/uploadServerDirChangeName.html new file mode 100644 index 00000000..1d05c989 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadServerDirChangeName.html @@ -0,0 +1,51 @@ + + + + + + + + + + ← 예제 목록

    +

    pdf파일만 첨부할 수 있게 설정되어 있고, 서버의 /data 하위에 UUID폴더를 생성하고 UUID이름으로 파일명을 변경하는 예제입니다.

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadServerDirChangeName.jsp b/src/main/webapp/innorix_2/gnexam/uploadServerDirChangeName.jsp new file mode 100644 index 00000000..56c9a34c --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadServerDirChangeName.jsp @@ -0,0 +1,80 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@ page import="java.util.UUID" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + + // 파일정보 확인 + if("getFileInfo".equals(_action)) { + /* + 업로드 시 서버에 저장되는 파일 명 변경 (해당 예제는 랜덥값으로 서버에 저장되는 파일명을 설정) + - uploader.setFileName(파일명+확장자); + - 확장자 변경 시 파일은 열리지 않게 됩니다. + - upload.run() 이전에 선언 + */ + String saveNm = UUID.randomUUID()+".pdf"; + uploader.setFileName(saveNm); + } + + /* + 업로드 시 서버 저장경로 지정 + - uploader.setDirectory(지정경로) + - uploader.run() 이전에 선언 + */ + uploader.setDirectory(directory + "/" + UUID.randomUUID()); + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + System.out.println("_type \t = " + _type); + System.out.println("_part \t = " + _part); +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadSession.jsp b/src/main/webapp/innorix_2/gnexam/uploadSession.jsp new file mode 100644 index 00000000..5121b106 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadSession.jsp @@ -0,0 +1,81 @@ +<%@page import="com.innorix.transfer.InnorixTransfer"%> +<%@page import="java.io.File"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@ page import="java.util.*" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 + +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _transferId = uploader.getParameter("_transferId"); // TransferId + String _unique_filename = uploader.getParameter("_unique_filename"); // uniqueName + String _folder = uploader.getParameter("_folder"); // folder + + /* 파일정보 확인 */ + if("getFileInfo".equals(_action)) { + String filePath = directory + "/"; + + if(_folder.length() > 0){ //폴더가 존재할 경우 + filePath += _folder.replace("\\", "/") + "/"; + } + + filePath += _orig_filename; + String uniqueId = _unique_filename.replace(".irx", "").replace(".dat", ""); //Agent: irx / HTML5: dat + + uploader.setCustomValue("uniqueId", uniqueId); //취소, 완료 시 uniqueId 취득용 + uploader.sendCustomValue(); + session.setAttribute(uniqueId, filePath); // 세션 저장 + + } + + String _run_retval = uploader.run(); + + /* 개별 파일 전송 완료 후 처리 */ + if("attachFileCompleted".equals(_action)) { + + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + + +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadSetDirectory.html b/src/main/webapp/innorix_2/gnexam/uploadSetDirectory.html new file mode 100644 index 00000000..970ec3aa --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadSetDirectory.html @@ -0,0 +1,80 @@ + + + + + + + + + ← 예제 목록

    +

    업로드 시 서버 저장경로 변경 - 사용자에게 입력받은 값으로 서버 업로드경로에 폴더명을 생성하는 예제입니다.

    + +
    + test1 : +

    + +

    + + 생년월일 입력 : + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/uploadSetDirectory.jsp b/src/main/webapp/innorix_2/gnexam/uploadSetDirectory.jsp new file mode 100644 index 00000000..0c15e0a8 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/uploadSetDirectory.jsp @@ -0,0 +1,77 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> + +<% +// CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 +if ("POST".equals(request.getMethod())) +{ + String directory = InnorixUpload.getServletAbsolutePath(request); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); + + /* + 전달되는 _action Param 정보 + speedCheck : 전송속도 측정 + getServerInfo : 서버정보 확인 + getFileInfo : 파일정보 확인 + attachFile : 파일전송 진행 + attachFileCompleted : 파일전송 완료 + */ + + String _action = uploader.getParameter("_action"); // 동작 플래그 + String _orig_filename = uploader.getParameter("_orig_filename"); // 원본 파일명 + String _new_filename = uploader.getParameter("_new_filename"); // 저장 파일명 + String _filesize = uploader.getParameter("_filesize"); // 파일 사이즈 + String _start_offset = uploader.getParameter("_start_offset"); // 파일저장 시작지점 + String _end_offset = uploader.getParameter("_end_offset"); // 파일저장 종료지점 + String _filepath = uploader.getParameter("_filepath"); // 파일 저장경로 + String _el = uploader.getParameter("el"); // 컨트롤 엘리먼트 ID + String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 + String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 + String _transferId = uploader.getParameter("_transferId"); // TransferId + + String _transParam1 = uploader.getParameter("transParam1"); // 사용자에게 입력받은 생년월일(birth) 값 + + /* + 업로드 시 서버 저장경로 지정 + uploader.setDirectory() + - uploader.run() 이전에 선언하여 변경가능합니다. + */ + String subDir = _transParam1; + uploader.setDirectory(directory + "/" + subDir); // 입력받은 값으로 폴더생성하려 서버의 저장 경로를 별도로 지정 + + String _run_retval = uploader.run(); + + // 개별파일 업로드 완료 + if("attachFileCompleted".equals(_action)) { + /* + System.out.println("========== uploader.isUploadDone() " + System.currentTimeMillis() + " =========="); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_filepath \t = " + _filepath); + */ + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("_action \t = " + _action); + System.out.println("_run_retval \t = " + _run_retval); + System.out.println("_orig_filename \t = " + _orig_filename); + System.out.println("_new_filename \t = " + _new_filename); + System.out.println("_filesize \t = " + _filesize); + System.out.println("_start_offset \t = " + _start_offset); + System.out.println("_end_offset \t = " + _end_offset); + System.out.println("_filepath \t = " + _filepath); + System.out.println("_el \t = " + _el); + System.out.println("_type \t = " + _type); + System.out.println("_part \t = " + _part); +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/useFuncBtn.html b/src/main/webapp/innorix_2/gnexam/useFuncBtn.html new file mode 100644 index 00000000..2bba5972 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/useFuncBtn.html @@ -0,0 +1,67 @@ + + + + + + + + + ← 예제 목록

    + +
    + test1 : +

    + +

    + + + + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/zipCombine.html b/src/main/webapp/innorix_2/gnexam/zipCombine.html new file mode 100644 index 00000000..56baccb9 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/zipCombine.html @@ -0,0 +1 @@ + ← 예제 목록

    압축(.zip)하여 파일 다운로드 - 업로드 후 다운로드 시 압축하여 다운로드 예제





    \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/zipDownload.jsp b/src/main/webapp/innorix_2/gnexam/zipDownload.jsp new file mode 100644 index 00000000..6e2acffc --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/zipDownload.jsp @@ -0,0 +1,160 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixDownload" %> +<%@ page import="java.io.*" %> + +<% + +out.clear(); +out = pageContext.pushBody(); + +request.setCharacterEncoding("utf-8"); +String saveDir = delimiterReplace(request.getRealPath(request.getServletPath())); +String filePath = saveDir.substring(0, saveDir.lastIndexOf("/") + 1); + +/* + filePath + 파일이 저장된 스토리지 전체경로 + 디렉토리 구분은 윈도우, 유닉스 모두 "/" 문자 사용 + 윈도우 - C:/storage/path1/path2/data + 유닉스 - /storage/path1/path2/data +*/ + +// downloadType : "stream" 설정시 자동 전달되는 GET Param 값 +String szStartOffset = request.getParameter("_StartOffset"); +String szEndOffset = request.getParameter("_EndOffset"); + +// 파일 스트림 데이터 참조용 GET Param 값, 파라메터 명은 자유 형식 +String fileID = request.getParameter("fileID"); +String fileName = request.getParameter("fileName"); +String fileFullPath = request.getParameter("fileFullPath"); +String zipFileFullPath = request.getParameter("zipFileFullPath"); +String sysFileName = new String(); +String orgFileName = new String(); + +if (fileID != null) { + if (fileID.equals("1")) { + sysFileName = "sample-file.pdf"; // 시스템 저장 파일명 + orgFileName = "INNORIX WP 브로셔.pdf"; // 원본 파일명 + } + + if (fileID.equals("2")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP Brochure.pdf"; + } + + if (fileID.equals("3")) { + sysFileName = "sample-file.pdf"; + orgFileName = "INNORIX WP パンフレット.pdf"; + } +} + +if (fileName != null) { + sysFileName = "data/" + fileName; + orgFileName = "data/" + fileName; +} + +// 파일명 깨짐대응 문자열 인코딩 처리 +orgFileName = java.net.URLEncoder.encode(orgFileName, "UTF-8").replaceAll("\\+", "%20"); + +File file = null; + +if (fileFullPath != null && !"".equals(fileFullPath)) { + file = new File(fileFullPath); +} else if(zipFileFullPath != null && !"".equals(zipFileFullPath)){ + file = new File(zipFileFullPath); +} else { + file = new File(filePath + sysFileName); +} + +response.setContentType("application/octet-stream"); +response.setHeader("Accept-Ranges", "bytes"); +response.setHeader("Content-Disposition", "attachment; filename=\"" + file.getName() +"\""); + +long startOffset = 0; +long endOffset = 0; + +if (szStartOffset != null) { + startOffset = Long.parseLong(szStartOffset); +} + +if (szEndOffset != null) { + endOffset = Long.parseLong(szEndOffset); +} + +long contentLength = 0; + +if(szStartOffset != null || szEndOffset != null) { // 컨트롤 다운로드 요청 시 + contentLength = endOffset - startOffset + 1; +} else { // html 일반 다운로드 요청 시 + contentLength = file.length(); +} + +response.setHeader("Content-Length", "" + contentLength); + +byte b[] = new byte[8192]; +BufferedInputStream input = null; +BufferedOutputStream output = null; + +try { + input = new BufferedInputStream(new FileInputStream(file)); + output = new BufferedOutputStream(response.getOutputStream()); + + int read = 0; + + if (startOffset != 0) { + long n = input.skip(startOffset); + if (n == -1) read = -1; + } + + if(contentLength > 0) { + while (contentLength > 0) { + if(contentLength < 8192) { + b = new byte[(int)contentLength]; + } + + read = input.read(b); + + if(read == -1) { + break; + } + + output.write(b, 0, read); + contentLength = contentLength - read; + } + } + + System.out.println("========== innorix transfer " + System.currentTimeMillis() + " =========="); + System.out.println("fileID \t: " + fileID); + System.out.println("sysFilePath \t: " + filePath + sysFileName); + System.out.println("orgFileName \t: " + java.net.URLDecoder.decode(orgFileName, "UTF-8")); + System.out.println("totalLength \t: " + file.length() ); + System.out.println("startOffset \t: " + startOffset); + System.out.println("endOffset \t: " + endOffset); + +} catch(Exception e) { + e.printStackTrace(); +} finally { + if(output != null) { + output.flush(); + output.close(); + } + + if(input != null) { + input.close(); + } + if(zipFileFullPath != null && !"".equals(zipFileFullPath)){ + file.delete(); + } +} + +%> + +<%! +private String delimiterReplace(String fullDir) +{ + String ret1 = fullDir.replaceAll("\\\\+", "/"); + String ret2 = ret1.replaceAll("\\/+", "/"); + + return ret2; +} +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/gnexam/zipFiles.jsp b/src/main/webapp/innorix_2/gnexam/zipFiles.jsp new file mode 100644 index 00000000..e01f1859 --- /dev/null +++ b/src/main/webapp/innorix_2/gnexam/zipFiles.jsp @@ -0,0 +1,84 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.innorix.transfer.InnorixUpload" %> +<%@ page import="java.io.File" %> +<%@ page import="java.io.FileInputStream" %> +<%@ page import="java.io.FileOutputStream" %> +<%@ page import="java.util.zip.ZipEntry" %> +<%@ page import="java.util.zip.ZipOutputStream" %> +<%@ page import="java.io.PrintWriter" %> +<%@ page import="org.json.JSONObject"%> + +<% +String directory = InnorixUpload.getServletAbsolutePath(request); +directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; + +String strFilePaths = request.getParameter("filePaths"); // 서버에 저장된 파일 경로 +String strZipFileName = request.getParameter("zipFileName"); // ZIP파일 이름(랜덤으로 생성한것) + +System.out.println("========== 압축시작 =========="); +if ("POST".equals(request.getMethod())) { + + if (strFilePaths != null) { + String[] arrFilePath = strFilePaths.split(","); //파일경로 배열에 담기 + + byte[] buf = new byte[1024]; //buf 사이즈 설정 + + ZipOutputStream output = null; + + // 압축 + try { + // ZIP파일 압축 START + output = new ZipOutputStream(new FileOutputStream(directory + "/" + strZipFileName)); // zip 파일 생성 + + FileInputStream in = null; + File file = null; + + for (int i=0; i 0) { // 압축 대상의 파일(data)을 설정된 사이즈(1024)만큼 읽어 들인다. + output.write(buf, 0, len); // 읽은 파일을 ZipOutPutStream에 Write + } + output.closeEntry(); + // ZIP파일 압축 END + + } catch(Exception e) { + e.printStackTrace(); + } finally { + if(in != null) { + try { in.close(); } catch(Exception e) { } + } + } + } + } catch(Exception e) { + e.printStackTrace(); + } finally { + if( output != null ) { + try { output.close(); } catch(Exception e) {} + } + } + + JSONObject json = new JSONObject(); + File zipFile = new File(directory + "/" + strZipFileName); + json.put("zipFileName", zipFile.getName()); + json.put("zipFilePath", zipFile.getAbsolutePath()); + json.put("zipFileSize", zipFile.getTotalSpace()); + + System.out.println("strZipFileName :"+strZipFileName); + System.out.println("zipFileName :"+zipFile.getName()); + System.out.println("zipFilePath :"+zipFile.getAbsolutePath()); + System.out.println("zipFileSize :"+zipFile.getTotalSpace()); + response.getWriter().print(json); + + } +} + +// CORS 관련 헤더 추가 +response.setHeader("Access-Control-Allow-Origin", "*"); +response.setHeader("Access-Control-Allow-Credentials", "true"); +response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS"); +response.setHeader("Access-Control-Allow-Headers", "Authorization,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type"); +%> \ No newline at end of file diff --git a/src/main/webapp/innorix_2/icon/application.png b/src/main/webapp/innorix_2/icon/application.png new file mode 100644 index 00000000..1dee9e36 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/application.png differ diff --git a/src/main/webapp/innorix_2/icon/code.png b/src/main/webapp/innorix_2/icon/code.png new file mode 100644 index 00000000..0c76bd12 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/code.png differ diff --git a/src/main/webapp/innorix_2/icon/css.png b/src/main/webapp/innorix_2/icon/css.png new file mode 100644 index 00000000..f907e44b Binary files /dev/null and b/src/main/webapp/innorix_2/icon/css.png differ diff --git a/src/main/webapp/innorix_2/icon/db.png b/src/main/webapp/innorix_2/icon/db.png new file mode 100644 index 00000000..bddba1f9 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/db.png differ diff --git a/src/main/webapp/innorix_2/icon/directory.png b/src/main/webapp/innorix_2/icon/directory.png new file mode 100644 index 00000000..784e8fa4 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/directory.png differ diff --git a/src/main/webapp/innorix_2/icon/doc.png b/src/main/webapp/innorix_2/icon/doc.png new file mode 100644 index 00000000..ae8ecbf4 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/doc.png differ diff --git a/src/main/webapp/innorix_2/icon/file.png b/src/main/webapp/innorix_2/icon/file.png new file mode 100644 index 00000000..8b8b1ca0 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/file.png differ diff --git a/src/main/webapp/innorix_2/icon/film.png b/src/main/webapp/innorix_2/icon/film.png new file mode 100644 index 00000000..b0ce7bb1 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/film.png differ diff --git a/src/main/webapp/innorix_2/icon/flash.png b/src/main/webapp/innorix_2/icon/flash.png new file mode 100644 index 00000000..5769120b Binary files /dev/null and b/src/main/webapp/innorix_2/icon/flash.png differ diff --git a/src/main/webapp/innorix_2/icon/folder_open.png b/src/main/webapp/innorix_2/icon/folder_open.png new file mode 100644 index 00000000..4e354835 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/folder_open.png differ diff --git a/src/main/webapp/innorix_2/icon/html.png b/src/main/webapp/innorix_2/icon/html.png new file mode 100644 index 00000000..6ed2490e Binary files /dev/null and b/src/main/webapp/innorix_2/icon/html.png differ diff --git a/src/main/webapp/innorix_2/icon/java.png b/src/main/webapp/innorix_2/icon/java.png new file mode 100644 index 00000000..b7bfcd15 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/java.png differ diff --git a/src/main/webapp/innorix_2/icon/linux.png b/src/main/webapp/innorix_2/icon/linux.png new file mode 100644 index 00000000..52699bfe Binary files /dev/null and b/src/main/webapp/innorix_2/icon/linux.png differ diff --git a/src/main/webapp/innorix_2/icon/ms4.png b/src/main/webapp/innorix_2/icon/ms4.png new file mode 100644 index 00000000..1c7bdb16 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/ms4.png differ diff --git a/src/main/webapp/innorix_2/icon/music.png b/src/main/webapp/innorix_2/icon/music.png new file mode 100644 index 00000000..a8b3ede3 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/music.png differ diff --git a/src/main/webapp/innorix_2/icon/pdf.png b/src/main/webapp/innorix_2/icon/pdf.png new file mode 100644 index 00000000..8f8095e4 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/pdf.png differ diff --git a/src/main/webapp/innorix_2/icon/php.png b/src/main/webapp/innorix_2/icon/php.png new file mode 100644 index 00000000..7868a259 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/php.png differ diff --git a/src/main/webapp/innorix_2/icon/picture.png b/src/main/webapp/innorix_2/icon/picture.png new file mode 100644 index 00000000..4a158fef Binary files /dev/null and b/src/main/webapp/innorix_2/icon/picture.png differ diff --git a/src/main/webapp/innorix_2/icon/ppt.png b/src/main/webapp/innorix_2/icon/ppt.png new file mode 100644 index 00000000..c4eff038 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/ppt.png differ diff --git a/src/main/webapp/innorix_2/icon/psd.png b/src/main/webapp/innorix_2/icon/psd.png new file mode 100644 index 00000000..73c5b3f2 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/psd.png differ diff --git a/src/main/webapp/innorix_2/icon/ruby.png b/src/main/webapp/innorix_2/icon/ruby.png new file mode 100644 index 00000000..f59b7c43 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/ruby.png differ diff --git a/src/main/webapp/innorix_2/icon/script.png b/src/main/webapp/innorix_2/icon/script.png new file mode 100644 index 00000000..63fe6cef Binary files /dev/null and b/src/main/webapp/innorix_2/icon/script.png differ diff --git a/src/main/webapp/innorix_2/icon/spinner.gif b/src/main/webapp/innorix_2/icon/spinner.gif new file mode 100644 index 00000000..85b99d46 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/spinner.gif differ diff --git a/src/main/webapp/innorix_2/icon/txt.png b/src/main/webapp/innorix_2/icon/txt.png new file mode 100644 index 00000000..813f712f Binary files /dev/null and b/src/main/webapp/innorix_2/icon/txt.png differ diff --git a/src/main/webapp/innorix_2/icon/xls.png b/src/main/webapp/innorix_2/icon/xls.png new file mode 100644 index 00000000..b977d7e5 Binary files /dev/null and b/src/main/webapp/innorix_2/icon/xls.png differ diff --git a/src/main/webapp/innorix_2/icon/zip.png b/src/main/webapp/innorix_2/icon/zip.png new file mode 100644 index 00000000..fd4bbccd Binary files /dev/null and b/src/main/webapp/innorix_2/icon/zip.png differ diff --git a/src/main/webapp/innorix_2/img/Exabyter_trnWin_logo.png b/src/main/webapp/innorix_2/img/Exabyter_trnWin_logo.png new file mode 100644 index 00000000..cc349081 Binary files /dev/null and b/src/main/webapp/innorix_2/img/Exabyter_trnWin_logo.png differ diff --git a/src/main/webapp/innorix_2/img/close-blue.png b/src/main/webapp/innorix_2/img/close-blue.png new file mode 100644 index 00000000..76a2cea3 Binary files /dev/null and b/src/main/webapp/innorix_2/img/close-blue.png differ diff --git a/src/main/webapp/innorix_2/img/close-gray.png b/src/main/webapp/innorix_2/img/close-gray.png new file mode 100644 index 00000000..5964653d Binary files /dev/null and b/src/main/webapp/innorix_2/img/close-gray.png differ diff --git a/src/main/webapp/innorix_2/img/close-white.png b/src/main/webapp/innorix_2/img/close-white.png new file mode 100644 index 00000000..be1b05ea Binary files /dev/null and b/src/main/webapp/innorix_2/img/close-white.png differ diff --git a/src/main/webapp/innorix_2/img/dropzone.gif b/src/main/webapp/innorix_2/img/dropzone.gif new file mode 100644 index 00000000..ee7a9b49 Binary files /dev/null and b/src/main/webapp/innorix_2/img/dropzone.gif differ diff --git a/src/main/webapp/innorix_2/img/dropzone.png b/src/main/webapp/innorix_2/img/dropzone.png new file mode 100644 index 00000000..693c4cbb Binary files /dev/null and b/src/main/webapp/innorix_2/img/dropzone.png differ diff --git a/src/main/webapp/innorix_2/img/empty-file.png b/src/main/webapp/innorix_2/img/empty-file.png new file mode 100644 index 00000000..6d7b787b Binary files /dev/null and b/src/main/webapp/innorix_2/img/empty-file.png differ diff --git a/src/main/webapp/innorix_2/img/google.png b/src/main/webapp/innorix_2/img/google.png new file mode 100644 index 00000000..d8bebb1c Binary files /dev/null and b/src/main/webapp/innorix_2/img/google.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_control_list_btns.png b/src/main/webapp/innorix_2/img/innorix_control_list_btns.png new file mode 100644 index 00000000..52b7393e Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_control_list_btns.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_control_list_checkbox.png b/src/main/webapp/innorix_2/img/innorix_control_list_checkbox.png new file mode 100644 index 00000000..86fc6a44 Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_control_list_checkbox.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_btn_close.png b/src/main/webapp/innorix_2/img/innorix_trnWindow_btn_close.png new file mode 100644 index 00000000..6318a8b1 Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_btn_close.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_graph_bg.png b/src/main/webapp/innorix_2/img/innorix_trnWindow_graph_bg.png new file mode 100644 index 00000000..468b2c7f Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_graph_bg.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_icons.gif b/src/main/webapp/innorix_2/img/innorix_trnWindow_icons.gif new file mode 100644 index 00000000..d303b506 Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_icons.gif differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_icons_16.gif b/src/main/webapp/innorix_2/img/innorix_trnWindow_icons_16.gif new file mode 100644 index 00000000..7c3559df Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_icons_16.gif differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_icons_16_gray.gif b/src/main/webapp/innorix_2/img/innorix_trnWindow_icons_16_gray.gif new file mode 100644 index 00000000..dcd9989b Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_icons_16_gray.gif differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_log_bg.png b/src/main/webapp/innorix_2/img/innorix_trnWindow_log_bg.png new file mode 100644 index 00000000..12ed501a Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_log_bg.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_secure_logo.png b/src/main/webapp/innorix_2/img/innorix_trnWindow_secure_logo.png new file mode 100644 index 00000000..3f698592 Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_secure_logo.png differ diff --git a/src/main/webapp/innorix_2/img/innorix_trnWindow_speed_colors.gif b/src/main/webapp/innorix_2/img/innorix_trnWindow_speed_colors.gif new file mode 100644 index 00000000..4f3bb124 Binary files /dev/null and b/src/main/webapp/innorix_2/img/innorix_trnWindow_speed_colors.gif differ diff --git a/src/main/webapp/innorix_2/img/move-blue.png b/src/main/webapp/innorix_2/img/move-blue.png new file mode 100644 index 00000000..5f186db3 Binary files /dev/null and b/src/main/webapp/innorix_2/img/move-blue.png differ diff --git a/src/main/webapp/innorix_2/img/move-white.png b/src/main/webapp/innorix_2/img/move-white.png new file mode 100644 index 00000000..aea38360 Binary files /dev/null and b/src/main/webapp/innorix_2/img/move-white.png differ diff --git a/src/main/webapp/innorix_2/img/paper-plane.png b/src/main/webapp/innorix_2/img/paper-plane.png new file mode 100644 index 00000000..27ad2faf Binary files /dev/null and b/src/main/webapp/innorix_2/img/paper-plane.png differ diff --git a/src/main/webapp/innorix_2/img/qrcode1.png b/src/main/webapp/innorix_2/img/qrcode1.png new file mode 100644 index 00000000..10cab120 Binary files /dev/null and b/src/main/webapp/innorix_2/img/qrcode1.png differ diff --git a/src/main/webapp/innorix_2/img/qrcode2.png b/src/main/webapp/innorix_2/img/qrcode2.png new file mode 100644 index 00000000..6686fdf2 Binary files /dev/null and b/src/main/webapp/innorix_2/img/qrcode2.png differ diff --git a/src/main/webapp/innorix_2/img/wp_graph.png b/src/main/webapp/innorix_2/img/wp_graph.png new file mode 100644 index 00000000..7c2fa1f6 Binary files /dev/null and b/src/main/webapp/innorix_2/img/wp_graph.png differ diff --git a/src/main/webapp/innorix_2/index.html b/src/main/webapp/innorix_2/index.html new file mode 100644 index 00000000..55ebf3e9 --- /dev/null +++ b/src/main/webapp/innorix_2/index.html @@ -0,0 +1,37 @@ + + + + + + +
    + + + \ No newline at end of file diff --git a/src/main/webapp/innorix_2/innorix.css b/src/main/webapp/innorix_2/innorix.css new file mode 100644 index 00000000..9938ea66 --- /dev/null +++ b/src/main/webapp/innorix_2/innorix.css @@ -0,0 +1 @@ +@charset "UTF-8";.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.innorix_base{color:#111;padding:0;font-size:12px;position:relative}.innorix_base .irx_inner{background:#fff;border:2px solid #13a097}.innorix_base .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#13a097}.innorix_base .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#888}.innorix_base .irx_inner .irx_listGrid_wrap{border-left:2px solid #ccc}.innorix_base .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_base .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#13a097;color:#fff}.innorix_base .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#ebebeb}.innorix_base .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#d9d9d9}.innorix_base .irx_inner._irx_dragging{border:2px solid #295388}.innorix_base .irx_inner .irx_empty{color:#aaa}.innorix_base.irx_theme_blood{color:#000}.innorix_base.irx_theme_blood .irx_inner{background:red;border:2px solid #8b2b3b}.innorix_base.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#175676}.innorix_base.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:maroon}.innorix_base.irx_theme_blood .irx_inner .irx_listGrid_wrap{border-left:2px solid #900}.innorix_base.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_base.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#175676;color:red}.innorix_base.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#d60000}.innorix_base.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#b30000}.innorix_base.irx_theme_blood .irx_inner._irx_dragging{border:2px solid #000}.innorix_base.irx_theme_blood .irx_inner .irx_empty{color:#aaa}.innorix_base.irx_theme_darker-than-black{color:#aaa}.innorix_base.irx_theme_darker-than-black .irx_inner{background:#333;border:2px solid #333}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#ccc}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#6f6f6f}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap{border-left:2px solid #404040}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#ccc;color:#333}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#454545}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#262626}.innorix_base.irx_theme_darker-than-black .irx_inner._irx_dragging{border:2px solid #ff7518}.innorix_base.irx_theme_darker-than-black .irx_inner .irx_empty{color:#aaa}.innorix_base.irx_theme_boombaya{color:#eee5e9}.innorix_base.irx_theme_boombaya .irx_inner{background:#492c1d;border:2px solid #492c1d}.innorix_base.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#66b3ba}.innorix_base.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#9c8983}.innorix_base.irx_theme_boombaya .irx_inner .irx_listGrid_wrap{border-left:2px solid #5b3724}.innorix_base.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_base.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#66b3ba;color:#492c1d}.innorix_base.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#633b27}.innorix_base.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#372116}.innorix_base.irx_theme_boombaya .irx_inner._irx_dragging{border:2px solid #66b3ba}.innorix_base.irx_theme_boombaya .irx_inner .irx_empty{color:#aaa}.innorix_base .irx_inner{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.innorix_base .irx_inner .irx_empty{position:absolute;background:url(img/dropzone.gif) no-repeat center center;width:100%;height:100%}.innorix_base .irx_inner .irx_loading{display:none;position:absolute;top:0;bottom:0;left:0;right:0}.innorix_base .irx_inner .irx_contents{position:absolute;top:10px;left:10px;right:10px;bottom:10px;display:none}.innorix_base .irx_inner .irx_contents .irx_infoBox{position:absolute;width:200px;height:100%}.innorix_base .irx_inner .irx_contents .irx_infoBox .irx_infoBox_inner{position:absolute;height:200px;width:200px;top:50%;margin-top:-100px;text-align:center}.innorix_base .irx_inner .irx_contents .irx_infoBox .irx_infoBox_inner .irx_top{padding-top:50px;margin-bottom:10px}.innorix_base .irx_inner .irx_contents .irx_infoBox .irx_infoBox_inner .irx_top .irx_size{display:block;font-size:4em;font-weight:700;line-height:1.2em}.innorix_base .irx_inner .irx_contents .irx_infoBox .irx_infoBox_inner .irx_top .irx_unit{display:block;font-weight:700;font-size:1.2em;line-height:1em}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap{position:relative;height:100%;margin-left:200px}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap .irx_listGrid{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;text-align:left}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap .irx_listGrid li{position:relative;padding:0 20px;height:30px;line-height:30px;cursor:pointer;overflow:hidden;white-space:nowrap}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap .irx_listGrid li .irx_remove{display:none;width:30px;height:30px;line-height:30px;text-align:center;font-size:1.1em;font-weight:700;position:absolute;right:0;top:0}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap .irx_listGrid li.selected .irx_remove{display:block}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap .irx_listGrid li label{display:block;width:100%;height:100%}.innorix_base .irx_inner .irx_contents .irx_listGrid_wrap .irx_listGrid li input{display:none}.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.innorix_input .innorix_inner{width:100%}.innorix_input .irx_download,.innorix_input .irx_upload{display:none;margin-bottom:5px;padding-left:107px}.innorix_input .irx_download .irx_upload_input,.innorix_input .irx_upload .irx_upload_input{cursor:pointer}.innorix_input .irx_download .irx_download_input,.innorix_input .irx_download .irx_upload_input,.innorix_input .irx_upload .irx_download_input,.innorix_input .irx_upload .irx_upload_input{background:#fff;display:block;float:left;width:100%;margin-left:-107px;white-space:nowrap;height:25px;line-height:25px;font-size:12px;text-indent:10px;overflow:hidden;border:1px solid #ddd}.innorix_input .irx_download .irx_download_button,.innorix_input .irx_download .irx_upload_button,.innorix_input .irx_upload .irx_download_button,.innorix_input .irx_upload .irx_upload_button{font-size:12px;width:100px;height:25px;line-height:25px;text-align:center;margin-left:5px}.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.innorix_tester{border:2px solid #13a097;overflow:hidden;color:#111;padding:0;font-size:12px;position:relative}.innorix_tester .irx_inner{background:#fff;border:2px solid #13a097}.innorix_tester .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#13a097}.innorix_tester .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#888}.innorix_tester .irx_inner .irx_listGrid_wrap{border-left:2px solid #ccc}.innorix_tester .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_tester .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#13a097;color:#fff}.innorix_tester .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#ebebeb}.innorix_tester .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#d9d9d9}.innorix_tester .irx_inner._irx_dragging{border:2px solid #295388}.innorix_tester .irx_inner .irx_empty{color:#aaa}.innorix_tester.irx_theme_blood{color:#000}.innorix_tester.irx_theme_blood .irx_inner{background:red;border:2px solid #8b2b3b}.innorix_tester.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#175676}.innorix_tester.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:maroon}.innorix_tester.irx_theme_blood .irx_inner .irx_listGrid_wrap{border-left:2px solid #900}.innorix_tester.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_tester.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#175676;color:red}.innorix_tester.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#d60000}.innorix_tester.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#b30000}.innorix_tester.irx_theme_blood .irx_inner._irx_dragging{border:2px solid #000}.innorix_tester.irx_theme_blood .irx_inner .irx_empty{color:#aaa}.innorix_tester.irx_theme_darker-than-black{color:#aaa}.innorix_tester.irx_theme_darker-than-black .irx_inner{background:#333;border:2px solid #333}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#ccc}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#6f6f6f}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap{border-left:2px solid #404040}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#ccc;color:#333}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#454545}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#262626}.innorix_tester.irx_theme_darker-than-black .irx_inner._irx_dragging{border:2px solid #ff7518}.innorix_tester.irx_theme_darker-than-black .irx_inner .irx_empty{color:#aaa}.innorix_tester.irx_theme_boombaya{color:#eee5e9}.innorix_tester.irx_theme_boombaya .irx_inner{background:#492c1d;border:2px solid #492c1d}.innorix_tester.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#66b3ba}.innorix_tester.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#9c8983}.innorix_tester.irx_theme_boombaya .irx_inner .irx_listGrid_wrap{border-left:2px solid #5b3724}.innorix_tester.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_tester.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#66b3ba;color:#492c1d}.innorix_tester.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#633b27}.innorix_tester.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#372116}.innorix_tester.irx_theme_boombaya .irx_inner._irx_dragging{border:2px solid #66b3ba}.innorix_tester.irx_theme_boombaya .irx_inner .irx_empty{color:#aaa}.innorix_tester div.irx_filetree.empty-uploader{background:url(img/dropzone.png) no-repeat center center;background-color:#fff}.innorix_tester div.irx_filetree.empty-downloader{background:url(img/empty-file.png) no-repeat center center;background-color:#fff}.innorix_tester div.irx_filetree{width:550px;height:200px;position:relative;border-right:1px solid #dcdcdc;background:#fff;overflow:hidden;overflow-y:auto;float:left}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #efefef;padding:5px;padding-left:5px;height:20px;background-color:#fff}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div{float:left}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) -20px 0}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.tree-icon{width:18px;height:18px;margin-left:4px;margin-top:2px}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filename{margin-top:1px;margin-left:2px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;height:18px;line-height:18px}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filesize{color:#757575;margin-left:10px;margin-top:1px;vertical-align:middle;height:18px;line-height:18px}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group{float:right;clear:both;padding:0;margin:0;margin-top:-20px;display:none;text-align:right}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{position:absolute;margin-left:-50px;margin-top:2px;width:16px;height:16px;cursor:default;background:url(img/move-blue.png) no-repeat}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{position:absolute;margin-left:-30px;margin-top:3px;width:15px;height:15px;cursor:pointer;background:url(img/close-blue.png) no-repeat}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper:hover .btn-group{display:block}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected div.irx-file-inner-wrapper:first-child{background-color:#0c93dd;color:#fff;border-bottom:1px solid #0c93dd}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected div.irx-file-inner-wrapper:first-child div.filesize{color:#fff}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected div.irx-file-inner-wrapper:first-child div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) 0 0}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected div.irx-file-inner-wrapper:first-child div.btn-group span.irx_btn_move{background:url(img/move-white.png) no-repeat}.innorix_tester div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected div.irx-file-inner-wrapper:first-child div.btn-group span.irx_btn_del{background:url(img/close-white.png) no-repeat}.innorix_tester div.irx_infoBox{background:#fafafa;border:1px solid #dcdcdc}.innorix_tester div.irx_infoBox div.irx-chart-wrapper{position:relative;width:138px;float:left;height:180px;padding:10px}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-canvas-wrapper canvas.irx-chart-canvas{margin-top:5px}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size.file-select{height:50px;padding-top:0}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size{height:43px;padding-top:7px;text-align:center;margin-top:-88px;width:100%}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.selected-file-size{color:#2297c7;font-size:14pt;height:23px}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.total-file-size{color:#757575;font-size:12px;border-top:1px solid #d8d8d8;width:30%;margin:auto}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-count{text-align:center;margin-top:45px;width:100%}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;right:10px;width:15px;height:15px;cursor:pointer}.innorix_tester div.irx_infoBox div.irx-chart-wrapper div.irx-chart-btn-group div.irx-chart-toggle{position:absolute;width:15px;height:15px;opacity:0;background:url(img/close-gray.png) no-repeat}.innorix_tester div.irx_infoBox div.irx-mass-wrapper{position:absolute;width:100%;float:left;height:180px;padding:10px;display:none;background-color:#fff}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-canvas-wrapper canvas.irx-chart-canvas{margin-top:5px}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-file-size.file-select{height:50px;padding-top:0}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-file-size{height:43px;padding-top:7px;text-align:center;margin-top:30px;width:100%}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-file-size div.selected-file-size{color:#2297c7;font-size:14pt;height:23px}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-file-size div.total-file-size{color:#757575;font-size:12px;border-top:1px solid #d8d8d8;width:30%;margin:auto}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-file-count{text-align:center;margin-top:45px;width:100%;font-size:12.5px;line-height:15px}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;right:10px;width:10px;height:10px;cursor:pointer;top:10px;right:10px;font-size:16px;font-weight:700}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group div.irx-mass-toggle{color:#aaafb1}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group div.irx-mass-toggle:hover{color:#002060}.innorix_tester div.irx_infoBox div.irx-mass-wrapper div.irx-mass-wrapper-paper-image{background:url(img/paper-plane.png) left top no-repeat;width:152px;height:79px;background-size:152px 79px;position:absolute;right:76px;top:37px}.innorix_tester.chart-hide div.irx_filetree{min-width:100%}.innorix_tester.chart-hide div.irx-chart-wrapper{display:none}.tree-icon.directory{background:url(icon/directory.png) left top no-repeat}.tree-icon.directory-open{background:url(icon/folder_open.png) left top no-repeat}.tree-icon.expanded{background:url(icon/folder_open.png) left top no-repeat}.tree-icon.wait{background:url(icon/spinner.gif) left top no-repeat}.tree-icon.file-icon{background:url(icon/file.png) left top no-repeat}.tree-icon.file-icon.ext_3gp{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_afp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_afpa{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_asp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_aspx{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_avi{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_bat{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_bmp{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_c{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_cfm{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_cgi{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_com{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_cpp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_css{background:url(icon/css.png) left top no-repeat}.tree-icon.file-icon.ext_doc{background:url(icon/doc.png) left top no-repeat}.tree-icon.file-icon.ext_exe{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_gif{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_fla{background:url(icon/flash.png) left top no-repeat}.tree-icon.file-icon.ext_h{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_htm{background:url(icon/html.png) left top no-repeat}.tree-icon.file-icon.ext_html{background:url(icon/html.png) left top no-repeat}.tree-icon.file-icon.ext_jar{background:url(icon/java.png) left top no-repeat}.tree-icon.file-icon.ext_jpg{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_jpeg{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_js{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_lasso{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_log{background:url(icon/txt.png) left top no-repeat}.tree-icon.file-icon.ext_m4p{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_mov{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mp3{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_mp4{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mpg{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mpeg{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_ogg{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_pcx{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_pdf{background:url(icon/pdf.png) left top no-repeat}.tree-icon.file-icon.ext_php{background:url(icon/php.png) left top no-repeat}.tree-icon.file-icon.ext_png{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_ppt{background:url(icon/ppt.png) left top no-repeat}.tree-icon.file-icon.ext_psd{background:url(icon/psd.png) left top no-repeat}.tree-icon.file-icon.ext_pl{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_py{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_rb{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rbx{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rhtml{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rpm{background:url(icon/linux.png) left top no-repeat}.tree-icon.file-icon.ext_ruby{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_sql{background:url(icon/db.png) left top no-repeat}.tree-icon.file-icon.ext_swf{background:url(icon/flash.png) left top no-repeat}.tree-icon.file-icon.ext_tif{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_tiff{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_txt{background:url(icon/txt.png) left top no-repeat}.tree-icon.file-icon.ext_vb{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_wav{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_wmv{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_xls{background:url(icon/xls.png) left top no-repeat}.tree-icon.file-icon.ext_xml{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_zip{background:url(icon/zip.png) left top no-repeat}.tree-icon.file-icon.ext_directory{background:url(icon/directory.png) left top no-repeat}.tree-icon.file-icon.ext_ms4{background:url(icon/ms4.png) left top no-repeat}.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.innorix_basic{border:2px solid #09a3e4;overflow:hidden;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important;color:#111;padding:0;font-size:12px;position:relative}.innorix_basic .irx_inner{background:#fff;border:2px solid #13a097}.innorix_basic .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#13a097}.innorix_basic .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#888}.innorix_basic .irx_inner .irx_listGrid_wrap{border-left:2px solid #ccc}.innorix_basic .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_basic .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#13a097;color:#fff}.innorix_basic .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#ebebeb}.innorix_basic .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#d9d9d9}.innorix_basic .irx_inner._irx_dragging{border:2px solid #295388}.innorix_basic .irx_inner .irx_empty{color:#aaa}.innorix_basic.irx_theme_blood{color:#000}.innorix_basic.irx_theme_blood .irx_inner{background:red;border:2px solid #8b2b3b}.innorix_basic.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#175676}.innorix_basic.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:maroon}.innorix_basic.irx_theme_blood .irx_inner .irx_listGrid_wrap{border-left:2px solid #900}.innorix_basic.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_basic.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#175676;color:red}.innorix_basic.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#d60000}.innorix_basic.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#b30000}.innorix_basic.irx_theme_blood .irx_inner._irx_dragging{border:2px solid #000}.innorix_basic.irx_theme_blood .irx_inner .irx_empty{color:#aaa}.innorix_basic.irx_theme_darker-than-black{color:#aaa}.innorix_basic.irx_theme_darker-than-black .irx_inner{background:#333;border:2px solid #333}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#ccc}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#6f6f6f}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap{border-left:2px solid #404040}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#ccc;color:#333}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#454545}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#262626}.innorix_basic.irx_theme_darker-than-black .irx_inner._irx_dragging{border:2px solid #ff7518}.innorix_basic.irx_theme_darker-than-black .irx_inner .irx_empty{color:#aaa}.innorix_basic.irx_theme_boombaya{color:#eee5e9}.innorix_basic.irx_theme_boombaya .irx_inner{background:#492c1d;border:2px solid #492c1d}.innorix_basic.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#66b3ba}.innorix_basic.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#9c8983}.innorix_basic.irx_theme_boombaya .irx_inner .irx_listGrid_wrap{border-left:2px solid #5b3724}.innorix_basic.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_basic.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#66b3ba;color:#492c1d}.innorix_basic.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#633b27}.innorix_basic.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#372116}.innorix_basic.irx_theme_boombaya .irx_inner._irx_dragging{border:2px solid #66b3ba}.innorix_basic.irx_theme_boombaya .irx_inner .irx_empty{color:#aaa}.innorix_basic._irx_dragging{border:2px solid #81c7fc}.innorix_basic div{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important;position:static;white-space:normal;overflow:visible}.innorix_basic div.irx_filetree.empty-uploader{background:url(img/dropzone.png) no-repeat center center;background-color:#fff}.innorix_basic div.irx_filetree.empty-downloader{background-color:#fff}.innorix_basic div.irx_filetree .irx-empty-download-text{color:#6c6c6c;position:absolute;margin:0;top:46%;width:100%;text-align:center;font-size:25px}.innorix_basic .irx-hidden-input{opacity:0}.innorix_basic div.irx-file-header{padding:5px;padding-left:4px;display:none;position:fixed;width:100%;clear:both;background:#fafafa;border:1px solid #dcdcdc}.innorix_basic div.irx-file-header div{height:20px}.innorix_basic div.irx-file-header div.fileheader-checkbox{float:left;height:20px;width:20px;background:url(img/innorix_control_list_checkbox.png) -20px 0}.innorix_basic div.irx-file-header div.fileheader-checkbox.active{background:url(img/innorix_control_list_checkbox.png) 0 0}.innorix_basic div.irx-file-header div.irx-file-header-desc{float:left;margin-right:5px}.innorix_basic div.irx-file-header div.irx-file-remove-button-wrapper{float:none}.innorix_basic div.irx-file-header button.irx-file-remove-button{border:1px solid #cdcdcd;color:#646464;padding:0 5px;background:#fff;margin-right:5px;width:75px}.innorix_basic div.irx-file-header div.irx-file-download-button-wrapper{display:none}.innorix_basic div.irx-file-header button.irx-file-download-button{border:1px solid #cdcdcd;color:#646464;padding:0 5px;background:#fff;width:75px}.innorix_basic div.irx_filetree{width:550px;height:200px;position:relative;border-right:1px solid #dcdcdc;background:#fff;overflow:hidden;overflow-y:auto;float:left}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #efefef;padding:5px;padding-left:5px;height:20px;background-color:#fff;cursor:default}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div{float:left}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) -20px 0}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.tree-icon{width:18px;height:18px;margin-left:4px;margin-top:2px}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filename{margin-top:1px;margin-left:2px;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;height:18px;line-height:18px}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filesize{color:#757575;margin-left:10px;margin-top:1px;vertical-align:middle;height:18px;line-height:18px}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group{float:right;clear:both;padding:0;margin:0;margin-top:-20px;display:none;text-align:right}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{position:absolute;margin-left:-50px;margin-top:2px;width:16px;height:16px;cursor:default;background:url(img/move-blue.png) no-repeat}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{position:absolute;margin-left:-30px;margin-top:3px;width:15px;height:15px;cursor:pointer;background:url(img/close-blue.png) no-repeat}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper:hover .btn-group{display:block}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.is-removed>div.irx-file-inner-wrapper{color:#aaa}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper{background-color:#0c93dd;color:#fff;border-bottom:1px solid #0c93dd}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filesize{color:#fff}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filename{color:#fff}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) 0 0}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{background:url(img/move-white.png) no-repeat}.innorix_basic div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{background:url(img/close-white.png) no-repeat}.innorix_basic div.irx_infoBox{background:#fafafa}.innorix_basic div.irx_infoBox div.irx-chart-wrapper{position:relative;width:138px;float:left;height:180px;padding:10px}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-canvas-wrapper canvas.irx-chart-canvas{margin-top:5px}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size.file-select{height:50px;padding-top:0}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size{height:43px;padding-top:7px;text-align:center;margin-top:-88px;width:100%}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.selected-file-size{color:#2297c7;font-size:14pt;height:23px}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.total-file-size{color:#757575;font-size:12px;border-top:0 solid #d8d8d8;width:100%;margin:auto}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.topBorder{border-top:1px solid #d8d8d8;width:30%;margin:auto}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-count{color:#757575;text-align:center;margin-top:45px;width:100%;font-size:12.5px;line-height:15px}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;right:10px;width:15px;height:15px;cursor:pointer}.innorix_basic div.irx_infoBox div.irx-chart-wrapper div.irx-chart-btn-group div.irx-chart-toggle{position:absolute;width:15px;height:15px;opacity:1;background:url(img/close-gray.png) no-repeat}.innorix_basic div.irx_infoBox div.irx-preview-wrapper{position:relative;width:138px;float:left;height:180px;padding:10px;display:none;background:#fff}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-preview-element{width:100%;height:calc(100% - 30px);overflow:hidden}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-preview-element img.irx-preview-image{width:100%;height:auto}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-preview-element .irx-preview-pdf{width:158px;height:177px;overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;border:none;pointer-events:none;width:calc(100% + 16px);height:calc(100% + 16px)}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-preview-file-size{height:15px;padding-top:7px;text-align:center;margin-top:-5px;width:100%;color:#2297c7}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-preview-file-name{color:#2297c7;text-align:center;margin-top:2px;width:138px;font-size:12.5px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;right:10px;width:15px;height:15px;cursor:pointer}.innorix_basic div.irx_infoBox div.irx-preview-wrapper div.irx-chart-btn-group div.irx-chart-toggle{position:absolute;width:15px;height:15px;opacity:1;background:url(img/close-gray.png) no-repeat}.innorix_basic div.irx_infoBox div.irx-mass-wrapper{position:absolute;width:100%;float:left;height:180px;padding:10px;display:none;background-color:#fff;font-family:Helvetica,sans-serif}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-canvas-wrapper canvas.irx-chart-canvas{margin-top:5px}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-title{padding-top:7px;text-align:center;margin-top:10px;color:#002060;font-size:22px;font-weight:700}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-content{padding-top:7px;text-align:center;color:#002060;font-size:18px;font-weight:700}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-size{padding-top:7px;text-align:center;margin-top:50px;width:100%;font-size:16px;font-weight:700;color:#002060}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-size span.massFileNumber{color:#00b0f0;font-size:24px;height:23px;font-weight:700}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-size span.massFileText{color:#002060;font-size:16px;font-weight:700}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;top:0;right:16px;width:28px;height:28px;cursor:pointer;font-size:28px;font-weight:700}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group div.irx-mass-toggle{color:#aaafb1}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group div.irx-mass-toggle:hover{color:#002060}.innorix_basic div.irx_infoBox div.irx-mass-wrapper div.irx-mass-wrapper-paper-image{background:url(img/paper-plane.png) left top no-repeat;width:152px;height:79px;background-size:152px 79px;position:absolute;right:46px;top:27px;margin:auto}.innorix_basic div.circle_loading_wrapper{width:100%;height:100%;background-color:#fff;position:absolute;top:0;left:0;display:none;z-index:1}.innorix_basic div.circle_loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border:5px solid #fff!important;border-top:5px solid #1b89ff!important;border-radius:50em;transition:all .2s;animation-name:spinCircle;animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spinCircle{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.innorix_basic.chart-hide div.irx_filetree{min-width:100%}.innorix_basic.chart-hide div.irx-chart-wrapper{display:none}.innorix_basic.preview-show div.irx_filetree{min-width:0;width:calc(100% - 160px)}.innorix_basic.preview-show div.irx-preview-wrapper{display:block!important}.innorix_basic.preview-show div.irx-file-header-list{width:calc(100% - 160px)}.innorix_basic.preview-show div.irx-chart-wrapper{display:none}.__irx.context-menu-layer{position:fixed;z-index:101;top:0;left:0;opacity:0;background-color:#000;height:100vw;width:100vw;display:none;display:none}ul.__irx.context-menu-list{margin:0;padding:2px;min-width:120px;max-width:250px;display:none;position:fixed;list-style-type:none;border:1px solid #979797;background:#f0f0f0;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.5);-moz-box-shadow:0 2px 5px rgba(0,0,0,.5);-ms-box-shadow:0 2px 5px rgba(0,0,0,.5);-o-box-shadow:0 2px 5px rgba(0,0,0,.5);box-shadow:0 2px 5px rgba(0,0,0,.5);font-family:Dotum,Arial,Helvetica,sans-serif;font-size:12px;line-height:20px;color:#333;z-index:102}ul.__irx.context-menu-list li.context-menu-item{cursor:pointer;padding:2px 12px;background-color:#ebf0f6;position:relative;-webkit-user-select:none;-moz-user-select:-moz-none;-ms-user-select:none;user-select:none;border:1px solid #f0f0f0}ul.__irx.context-menu-list li:hover{border:1px solid #aecff7}.loading-layout{width:100%;height:100%;background:rgba(80,80,80,.2);display:none}.loading-layout-file-processing{width:100%;height:100%;background:rgba(80,80,80,.2);display:none}.sk-fading-circle{margin:auto;width:40px;height:40px;position:absolute;left:0;right:0;top:0;bottom:0;overflow:hidden}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:'';display:block;margin:0 auto;width:15%;height:15%;background-color:#333;border-radius:100%;-webkit-animation:sk-circleFadeDelay 1.2s infinite ease-in-out both;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.sk-fading-circle .sk-circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.sk-fading-circle .sk-circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.sk-fading-circle .sk-circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.sk-fading-circle .sk-circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.sk-fading-circle .sk-circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sk-fading-circle .sk-circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.sk-fading-circle .sk-circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.sk-fading-circle .sk-circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.sk-fading-circle .sk-circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.sk-fading-circle .sk-circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-fading-circle .sk-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}.tree-icon.directory{background:url(icon/directory.png) left top no-repeat}.tree-icon.directory.open{background:url(icon/folder_open.png) left top no-repeat}.tree-icon.expanded{background:url(icon/folder_open.png) left top no-repeat}.tree-icon.wait{background:url(icon/spinner.gif) left top no-repeat}.tree-icon.file-icon{background:url(icon/file.png) left top no-repeat}.tree-icon.file-icon.ext_3gp{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_afp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_afpa{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_asp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_aspx{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_avi{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_bat{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_bmp{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_c{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_cfm{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_cgi{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_com{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_cpp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_css{background:url(icon/css.png) left top no-repeat}.tree-icon.file-icon.ext_doc{background:url(icon/doc.png) left top no-repeat}.tree-icon.file-icon.ext_docx{background:url(icon/doc.png) left top no-repeat}.tree-icon.file-icon.ext_exe{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_gif{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_fla{background:url(icon/flash.png) left top no-repeat}.tree-icon.file-icon.ext_h{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_htm{background:url(icon/html.png) left top no-repeat}.tree-icon.file-icon.ext_html{background:url(icon/html.png) left top no-repeat}.tree-icon.file-icon.ext_jar{background:url(icon/java.png) left top no-repeat}.tree-icon.file-icon.ext_jpg{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_jpeg{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_js{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_lasso{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_log{background:url(icon/txt.png) left top no-repeat}.tree-icon.file-icon.ext_m4p{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_mov{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mp3{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_mp4{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mpg{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mpeg{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_ogg{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_pcx{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_pdf{background:url(icon/pdf.png) left top no-repeat}.tree-icon.file-icon.ext_php{background:url(icon/php.png) left top no-repeat}.tree-icon.file-icon.ext_png{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_ppt{background:url(icon/ppt.png) left top no-repeat}.tree-icon.file-icon.ext_pptx{background:url(icon/ppt.png) left top no-repeat}.tree-icon.file-icon.ext_psd{background:url(icon/psd.png) left top no-repeat}.tree-icon.file-icon.ext_pl{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_py{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_rb{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rbx{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rhtml{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rpm{background:url(icon/linux.png) left top no-repeat}.tree-icon.file-icon.ext_ruby{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_sql{background:url(icon/db.png) left top no-repeat}.tree-icon.file-icon.ext_swf{background:url(icon/flash.png) left top no-repeat}.tree-icon.file-icon.ext_tif{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_tiff{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_txt{background:url(icon/txt.png) left top no-repeat}.tree-icon.file-icon.ext_vb{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_wav{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_wmv{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_xls{background:url(icon/xls.png) left top no-repeat}.tree-icon.file-icon.ext_xlsx{background:url(icon/xls.png) left top no-repeat}.tree-icon.file-icon.ext_xml{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_zip{background:url(icon/zip.png) left top no-repeat}.tree-icon.file-icon.ext_directory{background:url(icon/directory.png) left top no-repeat}.tree-icon.file-icon.ext_ms4{background:url(icon/ms4.png) left top no-repeat}.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.innorix_compact{border:2px solid #13a097;overflow:hidden;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;color:#111;padding:0;font-size:12px;position:relative}.innorix_compact .irx_inner{background:#fff;border:2px solid #13a097}.innorix_compact .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#13a097}.innorix_compact .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#888}.innorix_compact .irx_inner .irx_listGrid_wrap{border-left:2px solid #ccc}.innorix_compact .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_compact .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#13a097;color:#fff}.innorix_compact .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#ebebeb}.innorix_compact .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#d9d9d9}.innorix_compact .irx_inner._irx_dragging{border:2px solid #295388}.innorix_compact .irx_inner .irx_empty{color:#aaa}.innorix_compact.irx_theme_blood{color:#000}.innorix_compact.irx_theme_blood .irx_inner{background:red;border:2px solid #8b2b3b}.innorix_compact.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#175676}.innorix_compact.irx_theme_blood .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:maroon}.innorix_compact.irx_theme_blood .irx_inner .irx_listGrid_wrap{border-left:2px solid #900}.innorix_compact.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_compact.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#175676;color:red}.innorix_compact.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#d60000}.innorix_compact.irx_theme_blood .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#b30000}.innorix_compact.irx_theme_blood .irx_inner._irx_dragging{border:2px solid #000}.innorix_compact.irx_theme_blood .irx_inner .irx_empty{color:#aaa}.innorix_compact.irx_theme_darker-than-black{color:#aaa}.innorix_compact.irx_theme_darker-than-black .irx_inner{background:#333;border:2px solid #333}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#ccc}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#6f6f6f}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap{border-left:2px solid #404040}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#ccc;color:#333}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#454545}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#262626}.innorix_compact.irx_theme_darker-than-black .irx_inner._irx_dragging{border:2px solid #ff7518}.innorix_compact.irx_theme_darker-than-black .irx_inner .irx_empty{color:#aaa}.innorix_compact.irx_theme_boombaya{color:#eee5e9}.innorix_compact.irx_theme_boombaya .irx_inner{background:#492c1d;border:2px solid #492c1d}.innorix_compact.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_size{color:#66b3ba}.innorix_compact.irx_theme_boombaya .irx_inner .irx_contents .irx_infoBox .irx_top .irx_unit{color:#9c8983}.innorix_compact.irx_theme_boombaya .irx_inner .irx_listGrid_wrap{border-left:2px solid #5b3724}.innorix_compact.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li{cursor:pointer}.innorix_compact.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li .irx_remove{background:#66b3ba;color:#492c1d}.innorix_compact.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.irx_odd{background:#633b27}.innorix_compact.irx_theme_boombaya .irx_inner .irx_listGrid_wrap .irx_listGrid li.selected{background:#372116}.innorix_compact.irx_theme_boombaya .irx_inner._irx_dragging{border:2px solid #66b3ba}.innorix_compact.irx_theme_boombaya .irx_inner .irx_empty{color:#aaa}.innorix_compact._irx_dragging{border:2px solid #81c7fc}.innorix_compact div{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important;position:static;white-space:normal;overflow:visible}.innorix_compact div.irx_filetree.empty-uploader{background:url(img/dropzone.png) no-repeat center center;background-color:#fff}.innorix_compact div.irx_filetree.empty-downloader{background-color:#fff}.innorix_compact div.irx_filetree .irx-empty-download-text{color:#6c6c6c;position:absolute;margin:0;top:46%;width:100%;text-align:center;font-size:25px}.innorix_compact div.irx_filetree{width:550px;height:200px;position:relative;border-right:1px solid #dcdcdc;background:#fff;overflow:hidden;overflow-y:auto;float:left}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #efefef;padding:5px;padding-left:5px;height:20px;background-color:#fff}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div{float:left}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) -20px 0}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.tree-icon{width:18px;height:18px;margin-left:4px;margin-top:2px}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filename{margin-top:1px;margin-left:2px;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;height:18px;line-height:18px}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filesize{color:#757575;margin-left:10px;margin-top:1px;vertical-align:middle;height:18px;line-height:18px}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filestatus{float:right;clear:both;padding:0;margin:0;margin-top:-20px;vertical-align:middle;height:18px;line-height:18px;display:none}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group{float:right;clear:both;padding:0;margin:0;margin-top:-20px;display:none;text-align:right}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{position:absolute;margin-left:-50px;margin-top:2px;width:16px;height:16px;cursor:default;background:url(img/move-blue.png) no-repeat}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{position:absolute;margin-left:-30px;margin-top:3px;width:15px;height:15px;cursor:pointer;background:url(img/close-blue.png) no-repeat}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper:hover .btn-group{display:block}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.is-removed>div.irx-file-inner-wrapper{color:#aaa}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper{background-color:#0c93dd;color:#fff;border-bottom:1px solid #0c93dd}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filesize{color:#fff}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) 0 0}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{background:url(img/move-white.png) no-repeat}.innorix_compact div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{background:url(img/close-white.png) no-repeat}.innorix_compact div.irx_infoBox{background:#fafafa}.innorix_compact div.irx_infoBox div.irx-chart-wrapper{position:relative;width:138px;float:left;height:180px;padding:10px}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-canvas-wrapper canvas.irx-chart-canvas{margin-top:5px}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size.file-select{height:50px;padding-top:0}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size{height:43px;padding-top:7px;text-align:center;margin-top:-88px;width:100%}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.selected-file-size{color:#2297c7;font-size:14pt;height:23px}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.total-file-size{color:#757575;font-size:12px;border-top:0 solid #d8d8d8;width:100%;margin:auto}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-size div.topBorder{border-top:1px solid #d8d8d8;width:30%;margin:auto}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-file-count{color:#757575;text-align:center;margin-top:45px;width:100%;font-size:12.5px;line-height:15px}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;right:10px;width:15px;height:15px;cursor:pointer}.innorix_compact div.irx_infoBox div.irx-chart-wrapper div.irx-chart-btn-group div.irx-chart-toggle{position:absolute;width:15px;height:15px;opacity:1;background:url(img/close-gray.png) no-repeat}.innorix_compact div.irx_infoBox div.irx-preview-wrapper{position:relative;width:138px;float:left;height:180px;padding:10px;display:none;background:#fff}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-preview-element{width:100%;height:calc(100% - 30px);overflow:hidden}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-preview-element img.irx-preview-image{width:100%;height:auto}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-preview-element .irx-preview-pdf{width:158px;height:177px;overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;border:none;pointer-events:none;width:calc(100% + 16px);height:calc(100% + 16px)}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-preview-file-size{height:15px;padding-top:7px;text-align:center;margin-top:-5px;width:100%;color:#2297c7}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-preview-file-name{color:#2297c7;text-align:center;margin-top:2px;width:138px;font-size:12.5px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;right:10px;width:15px;height:15px;cursor:pointer}.innorix_compact div.irx_infoBox div.irx-preview-wrapper div.irx-chart-btn-group div.irx-chart-toggle{position:absolute;width:15px;height:15px;opacity:1;background:url(img/close-gray.png) no-repeat}.innorix_compact div.irx_infoBox div.irx-mass-wrapper{position:absolute;width:100%;float:left;height:180px;padding:10px;display:none;background-color:#fff;font-family:Helvetica,sans-serif}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-canvas-wrapper canvas.irx-chart-canvas{margin-top:5px}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-title{padding-top:7px;text-align:center;margin-top:10px;color:#002060;font-size:22px;font-weight:700}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-content{padding-top:7px;text-align:center;color:#002060;font-size:18px;font-weight:700}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-size{padding-top:7px;text-align:center;margin-top:50px;width:100%;font-size:16px;font-weight:700;color:#002060}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-size span.massFileNumber{color:#00b0f0;font-size:24px;height:23px;font-weight:700}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-mass-file-size span.massFileText{color:#002060;font-size:16px;font-weight:700}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group{position:absolute;overflow:hidden;top:0;right:16px;width:28px;height:28px;cursor:pointer;font-size:28px;font-weight:700}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group div.irx-mass-toggle{color:#aaafb1}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-chart-btn-group div.irx-mass-toggle:hover{color:#002060}.innorix_compact div.irx_infoBox div.irx-mass-wrapper div.irx-mass-wrapper-paper-image{background:url(img/paper-plane.png) left top no-repeat;width:152px;height:79px;background-size:152px 79px;position:absolute;right:46px;top:27px;margin:auto}.innorix_compact div.circle_loading_wrapper{width:100%;height:100%;background-color:#fff;position:absolute;top:0;left:0;display:none;z-index:1}.innorix_compact div.circle_loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border:5px solid #fff!important;border-top:5px solid #1b89ff!important;border-radius:50em;transition:all .2s;animation-name:spinCircle;animation-duration:.8s;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes spinCircle{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.innorix_compact.chart-hide div.irx_filetree{min-width:100%}.innorix_compact.chart-hide div.irx-chart-wrapper{display:none}.innorix_basic.preview-show div.irx_filetree{min-width:0;width:calc(100% - 160px)}.innorix_basic.preview-show div.irx-preview-wrapper{display:block!important}.innorix_basic.preview-show div.irx-file-header-list{width:calc(100% - 160px)}.innorix_basic.preview-show div.irx-chart-wrapper{display:none}.__irx.context-menu-layer{position:fixed;z-index:101;top:0;left:0;opacity:0;background-color:#000;height:100vw;width:100vw;display:none;display:none}ul.__irx.context-menu-list{margin:0;padding:2px;min-width:120px;max-width:250px;display:none;position:fixed;list-style-type:none;border:1px solid #979797;background:#f0f0f0;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.5);-moz-box-shadow:0 2px 5px rgba(0,0,0,.5);-ms-box-shadow:0 2px 5px rgba(0,0,0,.5);-o-box-shadow:0 2px 5px rgba(0,0,0,.5);box-shadow:0 2px 5px rgba(0,0,0,.5);font-family:Dotum,Arial,Helvetica,sans-serif;font-size:12px;line-height:20px;color:#333;z-index:102}ul.__irx.context-menu-list li.context-menu-item{cursor:pointer;padding:2px 12px;background-color:#ebf0f6;position:relative;-webkit-user-select:none;-moz-user-select:-moz-none;-ms-user-select:none;user-select:none;border:1px solid #f0f0f0}ul.__irx.context-menu-list li:hover{border:1px solid #aecff7}.loading-layout{width:100%;height:100%;background:rgba(80,80,80,.2);display:none}.loading-layout-file-processing{width:100%;height:100%;background:rgba(80,80,80,.2);display:none}.sk-fading-circle{margin:auto;width:40px;height:40px;position:absolute;left:0;right:0;top:0;bottom:0;overflow:hidden}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:'';display:block;margin:0 auto;width:15%;height:15%;background-color:#333;border-radius:100%;-webkit-animation:sk-circleFadeDelay 1.2s infinite ease-in-out both;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);transform:rotate(30deg)}.sk-fading-circle .sk-circle3{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg)}.sk-fading-circle .sk-circle4{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.sk-fading-circle .sk-circle5{-webkit-transform:rotate(120deg);-ms-transform:rotate(120deg);transform:rotate(120deg)}.sk-fading-circle .sk-circle6{-webkit-transform:rotate(150deg);-ms-transform:rotate(150deg);transform:rotate(150deg)}.sk-fading-circle .sk-circle7{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.sk-fading-circle .sk-circle8{-webkit-transform:rotate(210deg);-ms-transform:rotate(210deg);transform:rotate(210deg)}.sk-fading-circle .sk-circle9{-webkit-transform:rotate(240deg);-ms-transform:rotate(240deg);transform:rotate(240deg)}.sk-fading-circle .sk-circle10{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.sk-fading-circle .sk-circle11{-webkit-transform:rotate(300deg);-ms-transform:rotate(300deg);transform:rotate(300deg)}.sk-fading-circle .sk-circle12{-webkit-transform:rotate(330deg);-ms-transform:rotate(330deg);transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-fading-circle .sk-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}.tree-icon.directory{background:url(icon/directory.png) left top no-repeat}.tree-icon.directory.open{background:url(icon/folder_open.png) left top no-repeat}.tree-icon.expanded{background:url(icon/folder_open.png) left top no-repeat}.tree-icon.wait{background:url(icon/spinner.gif) left top no-repeat}.tree-icon.file-icon{background:url(icon/file.png) left top no-repeat}.tree-icon.file-icon.ext_3gp{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_afp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_afpa{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_asp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_aspx{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_avi{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_bat{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_bmp{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_c{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_cfm{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_cgi{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_com{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_cpp{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_css{background:url(icon/css.png) left top no-repeat}.tree-icon.file-icon.ext_doc{background:url(icon/doc.png) left top no-repeat}.tree-icon.file-icon.ext_docx{background:url(icon/doc.png) left top no-repeat}.tree-icon.file-icon.ext_exe{background:url(icon/application.png) left top no-repeat}.tree-icon.file-icon.ext_gif{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_fla{background:url(icon/flash.png) left top no-repeat}.tree-icon.file-icon.ext_h{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_htm{background:url(icon/html.png) left top no-repeat}.tree-icon.file-icon.ext_html{background:url(icon/html.png) left top no-repeat}.tree-icon.file-icon.ext_jar{background:url(icon/java.png) left top no-repeat}.tree-icon.file-icon.ext_jpg{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_jpeg{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_js{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_lasso{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_log{background:url(icon/txt.png) left top no-repeat}.tree-icon.file-icon.ext_m4p{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_mov{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mp3{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_mp4{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mpg{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_mpeg{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_ogg{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_pcx{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_pdf{background:url(icon/pdf.png) left top no-repeat}.tree-icon.file-icon.ext_php{background:url(icon/php.png) left top no-repeat}.tree-icon.file-icon.ext_png{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_ppt{background:url(icon/ppt.png) left top no-repeat}.tree-icon.file-icon.ext_pptx{background:url(icon/ppt.png) left top no-repeat}.tree-icon.file-icon.ext_psd{background:url(icon/psd.png) left top no-repeat}.tree-icon.file-icon.ext_pl{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_py{background:url(icon/script.png) left top no-repeat}.tree-icon.file-icon.ext_rb{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rbx{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rhtml{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_rpm{background:url(icon/linux.png) left top no-repeat}.tree-icon.file-icon.ext_ruby{background:url(icon/ruby.png) left top no-repeat}.tree-icon.file-icon.ext_sql{background:url(icon/db.png) left top no-repeat}.tree-icon.file-icon.ext_swf{background:url(icon/flash.png) left top no-repeat}.tree-icon.file-icon.ext_tif{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_tiff{background:url(icon/picture.png) left top no-repeat}.tree-icon.file-icon.ext_txt{background:url(icon/txt.png) left top no-repeat}.tree-icon.file-icon.ext_vb{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_wav{background:url(icon/music.png) left top no-repeat}.tree-icon.file-icon.ext_wmv{background:url(icon/film.png) left top no-repeat}.tree-icon.file-icon.ext_xls{background:url(icon/xls.png) left top no-repeat}.tree-icon.file-icon.ext_xlsx{background:url(icon/xls.png) left top no-repeat}.tree-icon.file-icon.ext_xml{background:url(icon/code.png) left top no-repeat}.tree-icon.file-icon.ext_zip{background:url(icon/zip.png) left top no-repeat}.tree-icon.file-icon.ext_directory{background:url(icon/directory.png) left top no-repeat}.tree-icon.file-icon.ext_ms4{background:url(icon/ms4.png) left top no-repeat}.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.irx_transferWin_wrapper{background:0 0;position:fixed;*position:absolute;top:0;left:0;width:100%;height:100%;z-index:1111111;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important}.irx_transferWin_wrapper div{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important;overflow:visible;white-space:normal}.irx_transferWin.show-graph .irx_container .irx_graph_wrapper{display:block}.irx_transferWin.show-graph{height:281px}.irx_transferWin.show-qr .irx_container .irx_qr_wrapper{display:block}.irx_transferWin.show-qr{height:281px}.irx_transferWin{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none;width:500px;height:auto;background:#f5f5f5;color:#646464;font-size:12px;position:absolute;top:50%;left:50%;margin-top:-90px;margin-left:-250px;box-shadow:0 0 5px 2px #999;border:none}.irx_transferWin .irx_header{background:#53595f;color:#fff;height:35px;line-height:35px;padding-left:10px;position:static}.irx_transferWin .irx_header .irx_close{background:url(img/innorix_trnWindow_btn_close.png);border:0;width:35px;height:35px;text-indent:-9999px;float:right;overflow:hidden}.irx_transferWin .irx_container{border:1px solid #53595f;border-top:0;padding-top:20px;padding-bottom:20px;height:auto;position:static}.irx_transferWin .irx_container .irx_folderPath_wrapper,.irx_transferWin .irx_container .irx_indicator,.irx_transferWin .irx_container .irx_progress{margin-left:20px;position:static}.irx_transferWin .irx_container .irx_folderPath_wrapper .irx_folderPath,.irx_transferWin .irx_container .irx_indicator .irx_folderPath,.irx_transferWin .irx_container .irx_progress .irx_folderPath{width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.irx_transferWin .irx_container .irx_center{margin-right:20px}.irx_transferWin .irx_container .irx_center .irx_status{margin-left:20px;text-align:left}.irx_transferWin .irx_container .irx_speed_light{height:6px}.irx_transferWin .irx_container .irx_speed_light .irx_speed1,.irx_transferWin .irx_container .irx_speed_light .irx_speed2,.irx_transferWin .irx_container .irx_speed_light .irx_speed3{float:left;background:url(img/innorix_trnWindow_speed_colors.gif);display:block;width:6px;height:6px;margin-right:2px}.irx_transferWin .irx_container .irx_speed_light .innorix_on.irx_speed1,.irx_transferWin .irx_container .irx_speed_light .innorix_on.irx_speed2,.irx_transferWin .irx_container .irx_speed_light .innorix_on.irx_speed3{background-position:0 -30px}.irx_transferWin .irx_container .irx_speed_light .irx_speed1{background-position:0 0}.irx_transferWin .irx_container .irx_speed_light .irx_speed2{background-position:0 -10px}.irx_transferWin .irx_container .irx_speed_light .irx_speed3{background-position:0 -20px}.irx_transferWin .irx_container .irx_validate_progress_server{position:absolute;width:0;background:#5fb321;top:63px;left:21px;height:3px}.irx_transferWin .irx_container .irx_progress{margin-top:5px;position:relative;width:458px;height:30px;background:#c9cfd6}.irx_thumb_progress .irx_transferWin .irx_container .irx_progress .irx_thumb_progressBar,.irx_transferWin .irx_container .irx_progress .irx_progressBar,.irx_transferWin .irx_container .irx_progress .irx_progressStr_left,.irx_transferWin .irx_container .irx_progress .irx_progressStr_right,.irx_transferWin .irx_container .irx_progress .irx_thumb_progress .irx_thumb_progressBar{position:absolute;width:438px;height:30px}.irx_transferWin .irx_container .irx_progress .irx_progressStr_left,.irx_transferWin .irx_container .irx_progress .irx_progressStr_right{text-align:left;line-height:30px;left:10px}.irx_transferWin .irx_container .irx_progress .irx_progressStr_right{text-align:right}.irx_transferWin .irx_container .irx_progress .irx_progressBar{width:0;background:#0c93dd;overflow:hidden}.irx_transferWin .irx_container .irx_progress .irx_progressBar>.irx_progressStr_left,.irx_transferWin .irx_container .irx_progress .irx_progressBar>.irx_progressStr_right{color:#fff}.irx_transferWin .irx_container .irx_progress .irx_progressBar .irx_validate_progress{position:absolute;width:0;background:#5fb321;top:26px;height:3px}.irx_transferWin .irx_container .irx_center .irx_btnGroup .enable,.irx_transferWin .irx_container .irx_center .irx_qr_code,.irx_transferWin .irx_container .irx_center .irx_toggle_graph,.irx_transferWin .irx_container .irx_center .irx_trn_status,.irx_transferWin .irx_container .irx_folderPath .irx_folderDialog{text-indent:-9999px;overflow:hidden;background:url(img/innorix_trnWindow_icons.gif);width:18px;height:18px;margin-right:3px;border:0;vertical-align:middle}.irx_transferWin .irx_container .irx_center{margin-top:10px;height:18px;position:relative}.irx_transferWin .irx_container .irx_center .irx_btnGroup{position:absolute;top:0;right:0}.irx_transferWin .irx_container .irx_center .irx_controller{background:#4aa3df;color:#fff;border:0;width:80px;height:25px;vertical-align:middle;font-size:12px}.irx_transferWin .irx_container .irx_center .irx_controller.irx_on{background:#8bc4ea}.irx_transferWin .irx_container .irx_center .irx_toggle_graph{background:url(img/wp_graph.png)}.irx_transferWin .irx_container .irx_center .irx_trn_status{background-position:-36px -18px}.irx_transferWin .irx_container .irx_center .irx_trn_status.irx_warn{background-position:-18px -18px}.irx_transferWin .irx_container .irx_center .irx_trn_status.irx_error{background-position:0 -18px}.irx_transferWin .irx_container .irx_center .irx_qr_code{background:url(img/qrcode2.png);display:none}.irx_transferWin .irx_container .irx_center .irx_btnGroup .enable{background:url(img/qrcode1.png)}.irx_transferWin .irx_container .irx_folderPath_wrapper{height:20px}.irx_transferWin .irx_container .irx_folderPath .irx_folderDialog{background-position:-36px 0}.irx_transferWin .irx_container .irx_folderPath .irx_folderPath_str{margin:0 10px;vertical-align:middle;cursor:pointer}.irx_transferWin .irx_container .irx_message_wrapper{display:none;color:#646464;font-size:12px;min-height:20px;max-height:60px;margin-top:10px;margin-left:20px;margin-right:20px;margin-bottom:10px;word-break:break-all;overflow:hidden}.irx_transferWin .irx_container .irx_bottom{position:absolute;bottom:10px;left:20px;color:#b6b6b6;font-size:11px}.irx_transferWin .irx_container .irx_bottom_policy{margin-left:20px;margin-bottom:10px;display:none}.irx_transferWin .irx_container .irx_bottom_policy input[type=checkbox]{position:relative;top:2px}.irx_transferWin .irx_container .irx_trn_graph{background:url(img/innorix_devTool_graph_close_btn.png)}.irx_transferWin .irx_container .irx_graph_wrapper{display:none;position:relative;width:100%;border:1px solid #53595f;border-top:1px solid #b4b5b5;background:url(img/innorix_trnWindow_graph_bg.png);height:100px;color:#b6b6b6;font-size:11px;overflow:hidden;margin-top:31px;margin-left:-1px;box-shadow:0 3px 5px 2px #999}.irx_transferWin .irx_container .irx_qr_wrapper{display:none;position:relative;width:100%;border:1px solid #53595f;border-top:1px solid #b4b5b5;background-color:#f9f9f7;height:165px;color:#b6b6b6;font-size:11px;overflow:hidden;margin-top:36px;margin-left:-1px;box-shadow:0 3px 5px 2px #999}.irx_transferWin .irx_container .irx_qr_wrapper .gplayLogo{background:url(img/google.png) no-repeat;background-size:25%;background-color:#f9f9f7;height:48px;margin-top:30px;margin-left:20px;display:none}.irx_transferWin .irx_container .irx_qr_wrapper .desc{color:#646464;font-size:12px;margin-left:20px;width:250px;display:none}.irx_transferWin .irx_container .irx_qr_wrapper .qr_code img{position:absolute;top:15px;padding:3px;left:0;right:0;margin:auto}.irx_transferWin .irx_container .irx_graph_wrapper .innorix_avg_trn_rate,.irx_transferWin .irx_container .irx_graph_wrapper .innorix_trn_rate{position:absolute;height:80px;top:20px;width:100%}.irx_transferWin .irx_container .irx_avg_trn_rate_txt{position:absolute;left:20px;top:30px;color:#323232;font-size:12px}.irx_transferWin .irx_container .innorix_jqstooltip{background-color:rgba(0,0,0,.6);-ms-filter:'progid:DXImageTransform.Microsoft.gradient(startColorstr=#80000000,endColorstr=#80000000)';filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#80000000');position:absolute;padding:5px;border:1px solid #fff;z-index:1111112;white-space:nowrap;text-align:left;color:#fff;font:10px arial,san serif}.irx_transferWin div.irx_filetree.empty-uploader{background:url(img/dropzone.png) no-repeat center center;background-color:#fff}.irx_transferWin div.irx_filetree.empty-downloader{background-color:#fff}.irx_transferWin div.irx_filetree .irx-empty-download-text{color:#6c6c6c;position:absolute;margin:0;top:46%;width:100%;text-align:center;font-size:25px}.irx_transferWin div.irx_filetree{width:454px;height:140px;border:2px solid #13a097;margin-top:10px;margin-bottom:10px;position:relative;left:20px;right:0;background:#fff;overflow:hidden;overflow-y:auto;display:none}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #efefef;padding:5px;padding-left:5px;height:20px;background-color:#fff}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div{float:left}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) -20px 0}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.tree-icon{width:18px;height:18px;margin-left:4px;margin-top:2px}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filename{margin-top:1px;margin-left:2px;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;height:18px;line-height:18px}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filesize{color:#757575;margin-left:10px;margin-top:1px;vertical-align:middle;height:18px;line-height:18px}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.filestatus{float:right;clear:both;padding:0;margin:0;margin-top:-20px;vertical-align:middle;height:18px;line-height:18px}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group{float:right;clear:both;padding:0;margin:0;margin-top:-20px;display:none;text-align:right}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{position:absolute;margin-left:-50px;margin-top:2px;width:16px;height:16px;cursor:default;background:url(img/move-blue.png) no-repeat}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{position:absolute;margin-left:-30px;margin-top:3px;width:15px;height:15px;cursor:pointer;background:url(img/close-blue.png) no-repeat}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper div.irx-file-inner-wrapper:hover .btn-group{display:none}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.is-removed>div.irx-file-inner-wrapper{color:#aaa}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper{background-color:#0c93dd;color:#fff;border-bottom:1px solid #0c93dd}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filesize{color:#fff}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.filetree-checkbox{background:url(img/innorix_control_list_checkbox.png) 0 0}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.btn-group span.irx_btn_move{background:url(img/move-white.png) no-repeat}.irx_transferWin div.irx_filetree ul.irx_filetree_list li.irx-file-wrapper.selected>div.irx-file-inner-wrapper div.btn-group span.irx_btn_del{background:url(img/close-white.png) no-repeat}.irx_transferWin div.irx_filetree ul.irx_filetree_list .filetree-checkbox{display:none}.irx_transferWin div.irx_filetree ul.irx_filetree_list .btn-group{display:none}.transferCompact{margin-top:0!important;height:auto}.transferCompact>.irx_container>.irx_graph_wrapper{margin-top:28px}.transferCompact.download>.irx_container>.irx_folderPath_wrapper{margin-top:-10px!important}.transferCompact>.irx_container>.irx_folderPath_wrapper>.irx_folderPath{position:relative!important;top:-238px!important}.transferCompact>.irx_container>.irx_validate_progress_server{top:227px!important}.transferCompact>.irx_container>.irx_message_wrapper{margin-top:0}.transferCompactP{margin-top:0!important;height:auto}.transferCompactP>.irx_container>.irx_graph_wrapper{margin-top:38px}.transferCompactP.download>.irx_container>.irx_folderPath_wrapper{margin-top:-10px!important}.transferCompactP>.irx_container>.irx_folderPath_wrapper>.irx_folderPath{position:relative!important;top:-238px!important}.transferCompactP>.irx_container>.irx_validate_progress_server{top:227px!important}.transferCompactP>.irx_container>.irx_message_wrapper{margin-top:0}.irx_thumb_progress{position:absolute;top:50%;left:50%;margin-top:-90px;margin-left:-150px;width:258px;height:15px;background:#c9cfd6;border-radius:5px}.irx_thumb_progress .irx_thumb_progressBar,.irx_thumb_progress .irx_transferWin .irx_container .irx_progress .irx_progressBar,.irx_thumb_progress .irx_transferWin .irx_container .irx_progress .irx_progressStr_left,.irx_thumb_progress .irx_transferWin .irx_container .irx_progress .irx_progressStr_right,.irx_transferWin .irx_container .irx_progress .irx_thumb_progress .irx_progressBar,.irx_transferWin .irx_container .irx_progress .irx_thumb_progress .irx_progressStr_left,.irx_transferWin .irx_container .irx_progress .irx_thumb_progress .irx_progressStr_right{position:absolute;width:238px;height:15px}.irx_thumb_progress .irx_thumb_progressBar{border-radius:5px;width:0;background:#0c93dd;overflow:hidden}.innorix_base,.innorix_basic,.innorix_compact,.innorix_input,.innorix_tester,.irx_messageBox,.irx_transferWin{font-family:'Segoe UI',arial,'돋움',Dotum,'Apple SD Gothic Neo',AppleSDGothicNeo,sans-serif}.innorix_base ol,.innorix_base ul,.innorix_basic ol,.innorix_basic ul,.innorix_compact ol,.innorix_compact ul,.innorix_input ol,.innorix_input ul,.innorix_tester ol,.innorix_tester ul,.irx_messageBox ol,.irx_messageBox ul,.irx_transferWin ol,.irx_transferWin ul{list-style:none;margin:0;padding:0}.innorix_base button,.innorix_basic button,.innorix_compact button,.innorix_input button,.innorix_tester button,.irx_messageBox button,.irx_transferWin button{outline:0;cursor:pointer;margin:0;padding:0}.innorix_base blockquote,.innorix_base q,.innorix_basic blockquote,.innorix_basic q,.innorix_compact blockquote,.innorix_compact q,.innorix_input blockquote,.innorix_input q,.innorix_tester blockquote,.innorix_tester q,.irx_messageBox blockquote,.irx_messageBox q,.irx_transferWin blockquote,.irx_transferWin q{quotes:none}.irx_messageBox_wrapper{background:0 0;position:fixed;*position:absolute;top:0;left:0;width:100%;height:100%;z-index:99999}.irx_messageBox{position:absolute;left:50%;width:300px;margin-left:-150px;top:50%;height:30px;margin-top:-15px;background:#282a36;border-radius:8px;text-align:center;line-height:30px;font-size:11px;color:#fff} \ No newline at end of file diff --git a/src/main/webapp/innorix_2/innorix.js b/src/main/webapp/innorix_2/innorix.js new file mode 100644 index 00000000..25054da7 --- /dev/null +++ b/src/main/webapp/innorix_2/innorix.js @@ -0,0 +1,184 @@ +/* + * innorix-wp9 1.0.0 + * INNORIX Transfer solution + * Mon, 07 Oct 2024 09:27:01 GMT + * + * Copyright (C) INNORIX / innorix-dev-team, http://innorix.com + */ +// 체험버전 설치, 활용과 관련된 기술문의는 02-557-2757로 문의하여 주십시오. +// 라이선스 유형 : INNORIX WP 109일 체험 (만료 2024-12-31) +var INNORIX_LICENSE = "P+L8qrf/hL4Id2FXzLe/ZqwP7rcTxTccKbwHLkZrmyfHpY7smsLyXrqpzRqbk7DvWbvzVqdT+rE9n5pjpN7q73TC/nAvxZ/8D265Iicl81eWDnresf2Fo9pgQ1sYIM9pIbS8cuXGT3ZtlgTgHopO6rQo9O00XkTb+yYAujgFOvlTjgnctYcigUh9nnjnzTAQvt5wOfhYiPEiqF/++QDmF3fSxhW1g8mUA3C6H1owe/SDcAKl+MOlTWByW6w+MBtRJOc429aLOCUkaOaWpxq7OCjwqVoRsTg0y4869VMSGL2Mi/4JUDzLjEag53jrAmoAOTadGvYOcHMS/3rMH8gmaA=="; +var INNORIX_SIGNATURE = "pTdx0va8paDO9BW+E+K4NFwIeGrWyegEBqhFtvZDz+taMbL+tHKTshFfniFtcyFSnQxRwj4sCcvC/XqY6K5JAvN5WkKOtgH5CDnaeLdV3t6xwmvZoxTH/bNyahSvqfH96Q4VWDb4ZkEXdbGBOzrbCd3/QuKrSKUYPZu6oyzZ7GHUCybCUZEZVqqztNVzqm+zuce4HK78xGU6b40oCAepNARmE/9kBJl0gJZIjy7vx6QeuioVqInqsiK9qJwpU+jpiIJO5FxT9r1BzbpJd4ZfX4mZ7ok0UxdfLCDAtDS6bE2D7k6NVm3Z0paOXmNcmUOvNCcDW4ywrHb1521JoMFnLQ=="; + +var INNORIX_VERSION = '1.2.4.526' +var INNORIX_WIN_VERSION = '1.2.4.526' +var INNORIX_MAC_VERSION = '1.2.4.526' +var INNORIX_LINUX_VERSION = '1.2.4.526' +var INNORIX_WHITELIST = [] +var innorix_install_retry_count = 3 + +Math.cryptoRandom=function(){for(var e,t,n=[];(t="."+n.join("")).length<30;){e=(window.crypto||window.msCrypto).getRandomValues(new Uint32Array(5));for(var r=0;r0&&(n[n.length]=i)}}return Number(t)},function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(be.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do{e=e[t]}while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(Ne)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(je,"-$1").toLowerCase();if("string"==typeof(n=e.getAttribute(r))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:De.test(n)?pe.parseJSON(n):n)}catch(ie){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(Ae(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?null==(i=o[t])&&(i=o[pe.camelCase(t)]):i=o,i}}function d(e,t,n){if(Ae(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):de.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function f(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&He.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do{o=o||".5",c/=o,pe.style(e,t,c+l)}while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=Be.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Fe.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t,n,r,i){for(var o,a,s,u,l,c,d,f=e.length,v=p(t),y=[],x=0;f>x;x++)if((a=e[x])||0===a)if("object"===pe.type(a))pe.merge(y,a.nodeType?[a]:a);else if(Ie.test(a)){for(u=u||v.appendChild(t.createElement("div")),l=(Oe.exec(a)||["",""])[1].toLowerCase(),d=We[l]||We._default,u.innerHTML=d[1]+pe.htmlPrefilter(a)+d[2],o=d[0];o--;)u=u.lastChild;if(!de.leadingWhitespace&&Pe.test(a)&&y.push(t.createTextNode(Pe.exec(a)[0])),!de.tbody)for(a="table"!==l||$e.test(a)?""!==d[1]||$e.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(y,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=v.lastChild}else y.push(t.createTextNode(a));for(u&&v.removeChild(u),de.appendChecked||pe.grep(h(y,"input"),m),x=0;a=y[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(v.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Re.test(a.type||"")&&n.push(a);return u=null,v}function y(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){console.log(e)}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=Ke.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)pe.event.add(t,n,s[n][r])}a.data&&(a.data=pe.extend({},a.data))}}function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!de.noCloneEvent&&t[pe.expando]){i=pe._data(t);for(r in i.events)pe.removeEvent(t,r,i.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(C(t).text=e.text,E(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),de.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Fe.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,d=e.length,f=d-1,p=t[0],g=pe.isFunction(p);if(g||d>1&&"string"==typeof p&&!de.checkClone&&Qe.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(d&&(l=v(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;d>c;c++)o=l,c!==f&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,pe.map(s,E),c=0;a>c;c++)o=s[c],Re.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(u,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(Ze,"")));l=i=null}return e}function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||pe.cleanData(h(r)),r.parentNode&&(n&&pe.contains(r.ownerDocument,r)&&g(h(r,"script")),r.parentNode.removeChild(r));return e}function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n[0],"display");return n.detach(),r}function j(e){var t=re,n=rt[e];return n||(n=D(e,t),"none"!==n&&n||(nt=(nt||pe("