Merge branch 'JIWOO'
433
src/main/java/seed/com/gtm/seedfile/SeedFileController.java
Normal file
@ -0,0 +1,433 @@
|
||||
package seed.com.gtm.seedfile;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.ibatis.logging.Log;
|
||||
import org.apache.ibatis.logging.LogFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import seed.com.gtm.util.CommonsCompress;
|
||||
import seed.com.gtm.util.JSPUtil;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
|
||||
import seed.utils.SeedDateUtil;
|
||||
import seed.utils.SeedProperties;
|
||||
import seed.utils.SeedUtils;
|
||||
|
||||
@Controller
|
||||
public class SeedFileController {
|
||||
|
||||
@Autowired
|
||||
private SeedFileService service;
|
||||
|
||||
protected Log log = LogFactory.getLog(this.getClass());
|
||||
|
||||
@RequestMapping(value="/seed/extra/temp/file.do", method=RequestMethod.POST)
|
||||
public @ResponseBody HashMap<String, Object> tempFileUpload(HttpSession session, HttpServletRequest req, MultipartHttpServletRequest mreq){
|
||||
String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx"));
|
||||
if(siteIdx.equals("")){
|
||||
siteIdx = SeedUtils.setReplaceNull(req.getParameter("siteIdx"));
|
||||
}
|
||||
|
||||
// 파일 멀티로 받음
|
||||
//MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) req;
|
||||
Iterator<String> fileNames = mreq.getFileNames();
|
||||
|
||||
String funcType = req.getParameter("fileFuncType");
|
||||
String copyContractYn = SeedUtils.setReplaceNull(req.getParameter("copyContractYn"));
|
||||
|
||||
String fileName = "";
|
||||
String reFileName = "";
|
||||
String fileType = "";
|
||||
Long fileSize = 0L;
|
||||
|
||||
boolean success = false;
|
||||
|
||||
SeedProperties seedProperties = new SeedProperties();
|
||||
String tempPath = "";
|
||||
if(funcType.equals("trublchargermng")){
|
||||
tempPath = seedProperties.getConfigValue("root.path");
|
||||
}else{
|
||||
tempPath = seedProperties.getConfigValue("file.temp.path");
|
||||
}
|
||||
|
||||
//SeedUtils.setSeedMkDirs(rootPath + "/" + siteIdx + "/upload/tempFiles/"+funcType);
|
||||
|
||||
|
||||
/*MultipartFile uploadFile = null;
|
||||
if(copyContractYn.equals("Y")){
|
||||
uploadFile = mreq.getFile("upFile");
|
||||
}else if(copyContractYn.equals("N")){
|
||||
uploadFile = mreq.getFile("upFile2");
|
||||
}else{
|
||||
uploadFile = mreq.getFile("upFile");
|
||||
}
|
||||
System.out.println("2222");*/
|
||||
|
||||
while(fileNames.hasNext())
|
||||
{
|
||||
String fileNm = fileNames.next();
|
||||
MultipartFile mFile = mreq.getFile(fileNm);
|
||||
SeedDateUtil seedDateUtil = new SeedDateUtil();
|
||||
|
||||
|
||||
//File Null Check
|
||||
if(mFile.getSize()!=0){
|
||||
fileName = mFile.getOriginalFilename();
|
||||
reFileName = funcType+"_" + seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss") + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||
fileType = mFile.getOriginalFilename().substring(mFile.getOriginalFilename().lastIndexOf(".")+1);
|
||||
if (!Pattern.matches("(?i)^[\\d\\D]*\\.(txt|jpeg|jpg|png|gif|bmp|mp3|mp4|hwp|doc|docx|xls|xlsx|ppt|pptx|pdf|zip|alz)$","."+fileType)) {
|
||||
success = false;
|
||||
session.setAttribute("sSiteIdx", siteIdx);
|
||||
session.setAttribute("message", "(message)해당 파일은 업로드 하실수 없습니다.");
|
||||
session.setAttribute("self", "history");
|
||||
session.setAttribute("url", "");
|
||||
}else{
|
||||
reFileName = reFileName+"."+fileType;
|
||||
File makeFile = null;
|
||||
|
||||
if(funcType.equals("trublchargermng")){
|
||||
//위원회 사지파일만 site 밑으로 저장
|
||||
makeFile = new File(tempPath+"/"+siteIdx+"/upload/tempFiles/"+funcType+"/"+reFileName);
|
||||
}else{
|
||||
makeFile = new File(tempPath+"/"+siteIdx+"/"+funcType+"/"+reFileName);
|
||||
}
|
||||
|
||||
log.warn(tempPath+"/"+siteIdx+"/"+funcType+"/"+reFileName);
|
||||
//경로상에 파일이 존재하지 않을 경우
|
||||
if(! makeFile.exists()){
|
||||
//경로에 해당하는 디렉토리들을 생성
|
||||
if(makeFile.getParentFile().mkdirs()){
|
||||
try {
|
||||
makeFile.createNewFile(); //이후 파일 생성
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
log.warn("SeedFileController 템프파일 업로드 에러1");
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
mFile.transferTo(makeFile); //임시로 저장된 multipartFile을 실제 파일로 전송
|
||||
} catch (IllegalStateException e) {
|
||||
log.warn("SeedFileController 템프파일 업로드 에러2");
|
||||
} catch (IOException e) {
|
||||
log.warn("SeedFileController 템프파일 업로드 에러3");
|
||||
}
|
||||
fileSize = mFile.getSize();
|
||||
|
||||
success = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*if(uploadFile!=null && !uploadFile.isEmpty()){
|
||||
SeedDateUtil seedDateUtil = new SeedDateUtil();
|
||||
|
||||
fileName = uploadFile.getOriginalFilename();
|
||||
reFileName = funcType+"_" + seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss") + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1)));
|
||||
fileType = uploadFile.getOriginalFilename().substring(uploadFile.getOriginalFilename().lastIndexOf(".")+1);
|
||||
|
||||
if (!Pattern.matches("(?i)^[\\d\\D]*\\.(txt|jpeg|jpg|png|gif|bmp|mp3|mp4|hwp|doc|docx|xls|xlsx|ppt|pptx|pdf|zip|alz)$","."+fileType)) {
|
||||
success = false;
|
||||
|
||||
session.setAttribute("sSiteIdx", siteIdx);
|
||||
session.setAttribute("message", "(message)해당 파일은 업로드 하실수 없습니다.");
|
||||
session.setAttribute("self", "history");
|
||||
session.setAttribute("url", "");
|
||||
|
||||
}else{
|
||||
reFileName = reFileName+"."+fileType;
|
||||
File makeFile = new File(rootPath+"/"+siteIdx+"/upload/tempFiles/"+funcType+"/"+reFileName);
|
||||
System.out.println(rootPath+"/"+siteIdx+"/upload/tempFiles/"+funcType+"/"+reFileName);
|
||||
try {
|
||||
uploadFile.transferTo(makeFile);
|
||||
} catch (IllegalStateException e) {
|
||||
System.out.println("SeedFileController 템프파일 업로드 에러");
|
||||
} catch (IOException e) {
|
||||
System.out.println("SeedFileController 템프파일 업로드 에러");
|
||||
}
|
||||
|
||||
fileSize = uploadFile.getSize();
|
||||
|
||||
success = true;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
//JSON 변환을 위한 맵
|
||||
HashMap<String, Object> fileInfo = new HashMap<String, Object>();
|
||||
fileInfo.put("fileName",fileName);
|
||||
fileInfo.put("reFileName",reFileName);
|
||||
fileInfo.put("fileSize",fileSize);
|
||||
fileInfo.put("fileType",fileType);
|
||||
fileInfo.put("funcType",funcType);
|
||||
fileInfo.put("copyContractYn",copyContractYn);
|
||||
|
||||
return fileInfo;
|
||||
}
|
||||
|
||||
@RequestMapping("/seed/extra/down/file.do")
|
||||
public ModelAndView fileDown(ModelMap map, HttpSession session ,HttpServletResponse response,HttpServletRequest request,@RequestParam Map<String,Object> paramMap){
|
||||
|
||||
SeedProperties seedProperties = new SeedProperties();
|
||||
String rootPath = seedProperties.getConfigValue("file.real.path");
|
||||
|
||||
String dataIdx = SeedUtils.setReplaceNull(paramMap.get("dataIdx"));
|
||||
String pathKey1 = SeedUtils.setReplaceNull(paramMap.get("pathKey1"));
|
||||
String pathKey2 = SeedUtils.setReplaceNull(paramMap.get("pathKey2"));
|
||||
String funcType = SeedUtils.setReplaceNull(paramMap.get("funcType"));
|
||||
|
||||
if(funcType.equals("trublchargermng")){
|
||||
rootPath = seedProperties.getConfigValue("root.path");
|
||||
}
|
||||
|
||||
String path = SeedUtils.setReplaceNull(paramMap.get("filePath"));
|
||||
|
||||
pathKey1 = SeedUtils.setFilePathReplaceAll(pathKey1);
|
||||
pathKey2 = SeedUtils.setFilePathReplaceAll(pathKey2);
|
||||
funcType = SeedUtils.setFilePathReplaceAll(funcType);
|
||||
|
||||
|
||||
String fileReName = "";
|
||||
String fileName = "";
|
||||
String filePath = rootPath + "/" + pathKey1 + "/"+funcType;
|
||||
|
||||
if(!"".equals(dataIdx) && !"".equals(funcType)){
|
||||
|
||||
//funcType이 download일 경우 download폴더 하위의 일반 파일 및 특정 파일을 다운로드 하는 로직으로 동작 하게 됩니다.
|
||||
if("download".equals(funcType)){
|
||||
fileReName = dataIdx;
|
||||
fileName = dataIdx;
|
||||
filePath = rootPath + "/" + pathKey1 + "/"+funcType;
|
||||
}else if("mediation".equals(funcType) || "trublreqstmng".equals(funcType) || "trublcfrncmng".equals(funcType)){
|
||||
Map<String, Object> fileList = service.caseFileOne(paramMap);
|
||||
fileReName = SeedUtils.setReplaceNull(fileList.get("FILE_ORGNAME"));
|
||||
fileName = SeedUtils.setReplaceNull(fileList.get("FILE_NAME"));
|
||||
|
||||
|
||||
if(SeedUtils.setReplaceNull(paramMap.get("downUserl")).equals("user")){
|
||||
|
||||
//본인인증 시간 체크
|
||||
if(SeedUtils.setReplaceNull(session.getAttribute("isGubun")).equals("")){
|
||||
return new ModelAndView("redirect:/user/mediation/case/01/155/checkMediationStep01.do");
|
||||
}
|
||||
|
||||
|
||||
if(!SeedUtils.setReplaceNull(session.getAttribute("hpName")).equals("")){
|
||||
paramMap.put("fileNo", SeedUtils.setReplaceNull(fileList.get("FILE_NO")));
|
||||
paramMap.put("seqNo", SeedUtils.setReplaceNull(fileList.get("SEQ_NO")));
|
||||
paramMap.put("hpName", SeedUtils.setReplaceNull(session.getAttribute("hpName")));
|
||||
paramMap.put("isGubun", SeedUtils.setReplaceNull(session.getAttribute("isGubun")));
|
||||
service.hisInsert(paramMap);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(funcType.equals("trublchargermng")){
|
||||
filePath = rootPath + "/" + pathKey1 + "/upload/uploadFiles/"+funcType+"/"+pathKey2;
|
||||
}else{
|
||||
filePath = rootPath + "/" + pathKey1 + "/"+funcType+"/"+pathKey2;
|
||||
}
|
||||
}else{
|
||||
Map<String, Object> fileList = service.fileOne(paramMap);
|
||||
fileReName = SeedUtils.setReplaceNull(fileList.get("EXTRA_FILE_RENAME"));
|
||||
fileName = SeedUtils.setReplaceNull(fileList.get("EXTRA_FILE_NAME"));
|
||||
if(funcType.equals("trublchargermng")){
|
||||
filePath = rootPath + "/" + pathKey1 + "/upload/uploadFiles/"+funcType+"/"+pathKey2;
|
||||
}else{
|
||||
filePath = rootPath + "/" + pathKey1 + "/"+funcType+"/"+pathKey2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ModelAndView mv = new ModelAndView("filedownLoad");
|
||||
mv.addObject("fileReName", fileReName);
|
||||
mv.addObject("fileName", fileName);
|
||||
mv.addObject("filePath", filePath);
|
||||
|
||||
return mv;
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping("/seed/extra/down/filedown.do")
|
||||
public ModelAndView fileDown(HttpServletResponse response, HttpSession session, HttpServletRequest request)throws Exception{
|
||||
EgovMap params;
|
||||
params = JSPUtil.makeRequestParams(request, session, true);
|
||||
log.warn(">>>>>>>>params<<<<<<<<<"+params);
|
||||
SeedProperties seedProperties = new SeedProperties();
|
||||
|
||||
String fileOrgname = SeedUtils.setReplaceNull(params.get("fileOrgname"));
|
||||
String fileName = SeedUtils.setReplaceNull(params.get("fileName"));
|
||||
String filePath = SeedUtils.setReplaceNull(params.get("filePath"));
|
||||
|
||||
ModelAndView mv = new ModelAndView("filedownLoad");
|
||||
mv.addObject("fileReName", fileOrgname);
|
||||
mv.addObject("fileName", fileName);
|
||||
mv.addObject("filePath", filePath);
|
||||
|
||||
return mv;
|
||||
}
|
||||
|
||||
@RequestMapping("/seed/extra/down/zipfile.do")
|
||||
public ModelAndView zipfileDown(HttpServletResponse response, HttpSession session, HttpServletRequest request)throws Exception{
|
||||
EgovMap params;
|
||||
params = JSPUtil.makeRequestParams(request, session, true);
|
||||
log.warn(">>>>>>>>params<<<<<<<<<"+params);
|
||||
|
||||
SeedProperties seedProperties = new SeedProperties();
|
||||
SeedDateUtil seedDateUtil = new SeedDateUtil();
|
||||
String rootPath = seedProperties.getConfigValue("file.real.path");
|
||||
String pathKey = SeedUtils.setReplaceNull(params.get("pathKey"));
|
||||
String filePath = rootPath + "/" + pathKey + "/zipDown/" + params.get("memberId").toString()+"/"+seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd");
|
||||
String fileCopyPath = rootPath + "/" + pathKey + "/zipDown/"
|
||||
+ params.get("memberId").toString()+"/"+seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd")
|
||||
+"/"+params.get("rceptNo").toString();
|
||||
System.out.println("filePath:" + filePath);
|
||||
System.out.println("fileCopyPath: "+fileCopyPath);
|
||||
List <File> filelist = new ArrayList<File>();
|
||||
List fileList = service.caseFileListEgov(params);
|
||||
String fileGubunNm = "";
|
||||
File orgFile = new File(filePath);
|
||||
File copyFile = new File(fileCopyPath);
|
||||
|
||||
if(!orgFile.exists()){
|
||||
//경로에 해당하는 디렉토리들을 생성
|
||||
orgFile.mkdirs();
|
||||
}
|
||||
if(!copyFile.exists()){
|
||||
//경로에 해당하는 디렉토리들을 생성
|
||||
copyFile.mkdirs();
|
||||
}
|
||||
if(orgFile.exists() && copyFile.exists()){
|
||||
for(int i = 0; i < fileList.size(); i++){
|
||||
//System.out.println(i);
|
||||
EgovMap emap = new EgovMap();
|
||||
emap.putAll((EgovMap) fileList.get(i));
|
||||
|
||||
|
||||
FileInputStream fis = null;
|
||||
FileOutputStream fos = null;
|
||||
BufferedInputStream bufferedInputStream = null;
|
||||
BufferedOutputStream bufferedOutputStream = null;
|
||||
|
||||
//파일복사
|
||||
try {
|
||||
//FileInputStream fis = new FileInputStream(emap.get("filePath").toString()+emap.get("fileOrgname").toString());
|
||||
|
||||
if(emap.get("fileFunc").toString().equals("mediation")){
|
||||
if(emap.get("filePath").toString().indexOf(".") <= -1){
|
||||
fis = new FileInputStream(emap.get("filePath").toString() + "/" + emap.get("fileOrgname").toString());
|
||||
}else{
|
||||
fis = new FileInputStream(emap.get("filePath").toString());
|
||||
}
|
||||
}else{
|
||||
fis = new FileInputStream(emap.get("filePath").toString() + "/" + emap.get("fileOrgname").toString());
|
||||
}
|
||||
|
||||
fos = new FileOutputStream(fileCopyPath+"/"+emap.get("fileName").toString());
|
||||
|
||||
bufferedInputStream = new BufferedInputStream(fis);
|
||||
bufferedOutputStream = new BufferedOutputStream(fos);
|
||||
|
||||
byte[] readBuffer = new byte[1024];
|
||||
|
||||
int data = 0;
|
||||
//System.out.println("111111111");
|
||||
while(bufferedInputStream.read(readBuffer, 0, readBuffer.length) != -1) {
|
||||
//fos.write(data);
|
||||
//System.out.println("aaaaaa");
|
||||
bufferedOutputStream.write(readBuffer);
|
||||
//System.out.println("bbbbbbb");
|
||||
|
||||
}
|
||||
//System.out.println("22222222222");
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
//여기서 에러남?
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try
|
||||
{
|
||||
// 파일 닫기. 여기에도 try/catch가 필요하다.
|
||||
// 보조스트림을 닫으면 원스트림도 닫힌다.
|
||||
if(bufferedInputStream != null){
|
||||
bufferedInputStream.close();
|
||||
}
|
||||
if(bufferedOutputStream != null){
|
||||
bufferedOutputStream.close();
|
||||
}
|
||||
if(fis != null){
|
||||
fis.close();
|
||||
}
|
||||
if(fos != null){
|
||||
fos.close();
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
System.out.println("close failed!!!" + e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
filelist.add(new File(fileCopyPath+"/"+emap.get("fileName").toString()));
|
||||
fileGubunNm = emap.get("fileGubunNm").toString();
|
||||
}
|
||||
}
|
||||
Random generator = new Random();
|
||||
String zipNm = params.get("rceptNo").toString()+"("+fileGubunNm+")_"+ seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss") + ".zip";
|
||||
File zippedFile = new File (filePath);
|
||||
//File zippedFile = new File (filePath, zipNm);
|
||||
|
||||
if(!zippedFile.exists()){
|
||||
//경로에 해당하는 디렉토리들을 생성
|
||||
zippedFile.mkdirs();
|
||||
}
|
||||
if(zippedFile.exists()){
|
||||
zippedFile = new File (filePath+"/"+zipNm);
|
||||
try {
|
||||
//이후 파일 생성
|
||||
CommonsCompress commonscompress = new CommonsCompress();
|
||||
commonscompress.zip(filelist, new BufferedOutputStream(new FileOutputStream(zippedFile)) );
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
log.warn("SeedFileController error1");
|
||||
}
|
||||
}
|
||||
ModelAndView mv = new ModelAndView("filedownLoad");
|
||||
mv.addObject("fileReName", zipNm);
|
||||
mv.addObject("fileName", zipNm);
|
||||
mv.addObject("filePath", filePath);
|
||||
|
||||
return mv;
|
||||
}
|
||||
}
|
||||
55
src/main/java/seed/com/gtm/util/CommonsCompress.java
Normal file
@ -0,0 +1,55 @@
|
||||
package seed.com.gtm.util;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
|
||||
|
||||
public class CommonsCompress {
|
||||
// 리스트로 파일을 받아 zip로 압축
|
||||
public void zip(List<File> src, OutputStream os) throws IOException {
|
||||
ZipArchiveOutputStream zos = new ZipArchiveOutputStream(os);
|
||||
//20190916 org
|
||||
//zos.setEncoding(Charset.defaultCharset().name());
|
||||
zos.setEncoding("UTF-8");
|
||||
FileInputStream fis = null;
|
||||
BufferedInputStream bis = null;
|
||||
|
||||
|
||||
int size = 8*1024;
|
||||
int length;
|
||||
ZipArchiveEntry ze;
|
||||
byte[] buf = new byte[size];
|
||||
try{
|
||||
if (src.size() > 0) {
|
||||
for (int i = 0; i < src.size(); i++) {
|
||||
//System.out.println("name: " + src.get(i).getName());
|
||||
ze = new ZipArchiveEntry(src.get(i).getName());
|
||||
zos.putArchiveEntry(ze);
|
||||
fis = new FileInputStream(src.get(i));
|
||||
bis = new BufferedInputStream(fis, size);
|
||||
while ((length = bis.read(buf, 0, buf.length)) >= 0) {
|
||||
zos.write(buf, 0, length);
|
||||
}
|
||||
}
|
||||
|
||||
bis.close();
|
||||
fis.close();
|
||||
zos.closeArchiveEntry();
|
||||
}
|
||||
}catch(IOException e){
|
||||
System.out.println("@@ CommonsCompress IOException @@");
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
if(zos != null){
|
||||
zos.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
374
src/main/java/seed/com/gtm/util/JSPUtil.java
Normal file
@ -0,0 +1,374 @@
|
||||
package seed.com.gtm.util;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.lang.Character.UnicodeBlock;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.json.JSONObject;
|
||||
import org.json.XML;
|
||||
|
||||
import egovframework.rte.psl.dataaccess.util.EgovMap;
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class JSPUtil {
|
||||
private JSPUtil() {
|
||||
}
|
||||
|
||||
public static EgovMap makeRequestParams(HttpServletRequest request, HttpSession session, boolean ishan) {
|
||||
EgovMap params = new EgovMap();
|
||||
Enumeration<?> e = request.getParameterNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String key = (String) e.nextElement();
|
||||
String[] Values = request.getParameterValues(key);
|
||||
|
||||
/*if (!(key.startsWith("content") || key.endsWith("Content"))) {
|
||||
for (int i = 0; i < Values.length; i++) {
|
||||
//한글깨짐문제로 주석처리
|
||||
//if(ishan) Values[i] = convUTF8(Values[i]);
|
||||
Values[i] = SQLInjection(Values[i]);
|
||||
}
|
||||
}*/
|
||||
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
|
||||
// 배열
|
||||
if (Values.length > 1) {
|
||||
params.put(key, Values);
|
||||
} else {
|
||||
params.put(key, Values[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Enumeration<?> ee = request.getAttributeNames();
|
||||
while (ee.hasMoreElements()) {
|
||||
String key = (String) ee.nextElement();
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
params.put(key, request.getAttribute(key));
|
||||
}
|
||||
|
||||
Enumeration<?> eee = session.getAttributeNames();
|
||||
while (eee.hasMoreElements()) {
|
||||
String key = (String) eee.nextElement();
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
params.put(key, session.getAttribute(key));
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
public static EgovMap makeRequestClipParams(HttpServletRequest request, HttpSession session, boolean ishan) {
|
||||
EgovMap params = new EgovMap();
|
||||
Enumeration<?> e = request.getParameterNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String key = (String) e.nextElement();
|
||||
String[] Values = request.getParameterValues(key);
|
||||
|
||||
if (!(key.startsWith("content") || key.endsWith("Content"))) {
|
||||
for (int i = 0; i < Values.length; i++) {
|
||||
//한글깨짐문제로 주석처리
|
||||
//if(ishan) Values[i] = convUTF8(Values[i]);
|
||||
Values[i] = SQLInjection(Values[i]);
|
||||
}
|
||||
}
|
||||
if (!key.startsWith("CLIP"))
|
||||
continue;
|
||||
|
||||
// 배열
|
||||
if (Values.length > 1) {
|
||||
params.put(key, Values);
|
||||
} else {
|
||||
params.put(key, Values[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Enumeration<?> ee = request.getAttributeNames();
|
||||
while (ee.hasMoreElements()) {
|
||||
String key = (String) ee.nextElement();
|
||||
if (!key.startsWith("CLIP"))
|
||||
continue;
|
||||
params.put(key, request.getAttribute(key));
|
||||
}
|
||||
|
||||
Enumeration<?> eee = session.getAttributeNames();
|
||||
while (eee.hasMoreElements()) {
|
||||
String key = (String) eee.nextElement();
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
params.put(key, session.getAttribute(key));
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
public static EgovMap makeRequestParams1(HttpServletRequest request, HttpSession session, boolean ishan) {
|
||||
EgovMap params = new EgovMap();
|
||||
Enumeration<?> e = request.getParameterNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String key = (String) e.nextElement();
|
||||
String[] Values = request.getParameterValues(key);
|
||||
|
||||
if (!(key.startsWith("content") || key.endsWith("Content"))) {
|
||||
for (int i = 0; i < Values.length; i++) {
|
||||
//한글깨짐문제로 주석처리
|
||||
//if(ishan) Values[i] = convUTF8(Values[i]);
|
||||
Values[i] = Values[i];
|
||||
}
|
||||
}
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
|
||||
// 배열
|
||||
if (Values.length > 1) {
|
||||
params.put(key, Values);
|
||||
} else {
|
||||
params.put(key, Values[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Enumeration<?> ee = request.getAttributeNames();
|
||||
while (ee.hasMoreElements()) {
|
||||
String key = (String) ee.nextElement();
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
params.put(key, request.getAttribute(key));
|
||||
}
|
||||
|
||||
Enumeration<?> eee = session.getAttributeNames();
|
||||
while (eee.hasMoreElements()) {
|
||||
String key = (String) eee.nextElement();
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
params.put(key, session.getAttribute(key));
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static EgovMap makeRequestParams(HttpServletRequest request, boolean ishan) {
|
||||
EgovMap params = new EgovMap();
|
||||
Enumeration<?> e = request.getParameterNames();
|
||||
while (e.hasMoreElements()) {
|
||||
String key = (String) e.nextElement();
|
||||
String[] Values = request.getParameterValues(key);
|
||||
|
||||
if (!(key.startsWith("content") || key.endsWith("Content"))) {
|
||||
for (int i = 0; i < Values.length; i++) {
|
||||
//한글깨짐문제로 주석처리
|
||||
//if(ishan) Values[i] = convUTF8(Values[i]);
|
||||
Values[i] = SQLInjection(Values[i]);
|
||||
}
|
||||
}
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
|
||||
// 배열
|
||||
if (Values.length > 1) {
|
||||
params.put(key, Values);
|
||||
} else {
|
||||
params.put(key, Values[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Enumeration<?> ee = request.getAttributeNames();
|
||||
while (ee.hasMoreElements()) {
|
||||
String key = (String) ee.nextElement();
|
||||
if (key.startsWith("encodingFilter."))
|
||||
continue;
|
||||
if (key.startsWith("openSessionInViewFilter."))
|
||||
continue;
|
||||
if (key.startsWith("multipartFilter."))
|
||||
continue;
|
||||
if (key.startsWith("org."))
|
||||
continue;
|
||||
if (key.startsWith("javax."))
|
||||
continue;
|
||||
params.put(key, request.getAttribute(key));
|
||||
}
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static String SQLInjection(String str) {
|
||||
String rStr = "";
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
if (JSPUtil.isSpecial(str.charAt(i))) {
|
||||
rStr += URLEncoder.encode(String.valueOf(str.charAt(i)));
|
||||
} else {
|
||||
rStr += String.valueOf(str.charAt(i));
|
||||
}
|
||||
}
|
||||
return rStr;
|
||||
}
|
||||
|
||||
private static String convUTF8(String str) {
|
||||
String rStr = "";
|
||||
try {
|
||||
rStr = new String(str.getBytes("8859_1"),"UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
rStr = str;
|
||||
}
|
||||
return rStr;
|
||||
}
|
||||
|
||||
private static boolean isSpecial(char ch) {
|
||||
char[] badChars = { '\'', '"', '%', '*', '<', '>', '&', ';', '\\', '=', '+', '^' };
|
||||
for (int i = 0; i < badChars.length; i++) {
|
||||
if (badChars[i] == ch)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isHangule(String str) {
|
||||
for(int i = 0 ; i < str.length() ; i++)
|
||||
{
|
||||
char ch = str.charAt(i);
|
||||
Character.UnicodeBlock unicodeBlock = Character.UnicodeBlock.of(ch);
|
||||
if(UnicodeBlock.HANGUL_SYLLABLES.equals(unicodeBlock) ||
|
||||
UnicodeBlock.HANGUL_COMPATIBILITY_JAMO.equals(unicodeBlock) ||
|
||||
UnicodeBlock.HANGUL_JAMO.equals(unicodeBlock))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static String tagReplaceAll(String src) {
|
||||
if (src == null)
|
||||
src = "";
|
||||
else {
|
||||
src = src.trim();
|
||||
src = src.replaceAll("&", "&");
|
||||
src = src.replaceAll("<", "<");
|
||||
src = src.replaceAll(">", ">");
|
||||
src = src.replaceAll("script", "");
|
||||
src = src.replace(""", "\"");
|
||||
}
|
||||
return src;
|
||||
}
|
||||
|
||||
|
||||
public static Object fixNull(Object obj) {
|
||||
if (obj == null)
|
||||
return null;
|
||||
else
|
||||
return obj;
|
||||
}
|
||||
|
||||
public static EgovMap fixNull(EgovMap map) {
|
||||
if (map == null)
|
||||
return map;
|
||||
|
||||
for (int i = 0; i < map.size(); i++) {
|
||||
if (map.getValue(i) == null){
|
||||
map.setValue(i, "");
|
||||
}else{
|
||||
//tag modify add 2016.07.02 최병기
|
||||
map.setValue(i, tagReplaceAll(map.getValue(i).toString()));
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static List<?> fixNull(List<?> list) {
|
||||
if (list == null)
|
||||
return list;
|
||||
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
fixNull((EgovMap) list.get(i));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static void fixNull(EgovMap map, String key, Object value) {
|
||||
if (map.get(key) == null)
|
||||
map.put(key, value);
|
||||
}
|
||||
|
||||
public static String addZero(int param, int size) {
|
||||
|
||||
String ret = Integer.toString(param);
|
||||
int length = ret.length();
|
||||
|
||||
for (int i = 0; i < size - length; i++) {
|
||||
ret = "0" + ret;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@ -152,7 +152,7 @@
|
||||
$("#paramFrm").submit();
|
||||
}
|
||||
</script>
|
||||
<script src="/js/jquery.form.js"></script>
|
||||
<script src="/js/seedFileUtil.js"></script>
|
||||
<script src="/js/seed/jquery.form.js"></script>
|
||||
<script src="/js/seed/seedFileUtil.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -17,36 +17,6 @@
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/content.css">
|
||||
<link rel="stylesheet" href="/kccadrPb/adm/css/content_media.css">
|
||||
|
||||
|
||||
<!-- AS-IS 분쟁조정 css -->
|
||||
<link rel="stylesheet" href="/css/seed/seed.reset.css">
|
||||
<link rel="stylesheet" href="/css/seed/seed.layout.css">
|
||||
<link rel="stylesheet" href="/css/seed/layout.css">
|
||||
<link rel="stylesheet" href="/css/seed/button.css">
|
||||
<link rel="stylesheet" href="/css/seed/seed.contents.css">
|
||||
<link rel="stylesheet" href="/css/seed/seed.mediaquery.css">
|
||||
<link rel="stylesheet" href="/css/seed/lib/jquery.mCustomScrollbar.min.css">
|
||||
<link rel="stylesheet" href="/css/seed/jquery-ui.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/jquery-ui.min.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/smartPop.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/space.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/picker.default.css">
|
||||
<link rel="stylesheet" href="/css/seed/picker.default.date.css">
|
||||
<link rel="stylesheet" href="/css/seed/case/common.css">
|
||||
|
||||
<!-- 캘린더css -->
|
||||
<link rel="stylesheet" href="/css/seed/case/fullcalendar.min.css">
|
||||
<link rel="stylesheet" href="/css/seed/case/fullcalendar.print.css" media='print'>
|
||||
<link rel="stylesheet" href="/css/seed/case/scheduler.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="/css/case/jquery.qtip.css" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/seed/clipreport.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/seed/UserConfig.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/seed/font.css">
|
||||
<!-- AS-IS 분쟁조정 css -->
|
||||
|
||||
|
||||
|
||||
<!-- script -->
|
||||
<script src="/kccadrPb/adm/script/jquery-3.5.0.js"></script>
|
||||
<script src="/kccadrPb/adm/script/common.js"></script>
|
||||
@ -59,27 +29,85 @@
|
||||
<script src="<c:url value='/js/kccadr/kccadrCom.js' />"></script>
|
||||
<script src="<c:url value='/js/antdatepicker/moment.min.js'/>"></script>
|
||||
|
||||
<!-- AS-IS 분쟁조정 js -->
|
||||
<!-- 라이브러리, 플러그인 -->
|
||||
<script src="/js/lib/jquery-1.9.1.min.js"></script>
|
||||
<script src="/js/lib/jquery-ui.min.js"></script>
|
||||
<script src="/js/lib/jquery.blockUI.js"></script>
|
||||
<script src="/js/lib/jquery.pjax.js"></script>
|
||||
<script src="/js/lib/modernizr-custom.js"></script>
|
||||
<script src="/js/lib/jquery.mCustomScrollbar.concat.min.js"></script>
|
||||
<script src="/js/seed/lib/jquery.bxslider.min.js"></script>
|
||||
<script src="/js/lib/picker.js"></script>
|
||||
<script src="/js/lib/picker.date.js"></script>
|
||||
<script src="/js/lib/legacy.js"></script>
|
||||
<script src="/js/lib/base64.js"></script>
|
||||
<!-- 라이브러리, 플러그인 끝 -->
|
||||
<script src="/js/seed/jquery.seed.js"></script>
|
||||
<script src="/js/seed/smartPop.js"></script>
|
||||
<script src="/js/seed/seed.common.js"></script>
|
||||
<script src="/js/seed/seed.tab.js"></script>
|
||||
<script src="/js/seed/seed.app.js"></script>
|
||||
<!-- AS-IS 분쟁조정 js -->
|
||||
|
||||
<!-- AS-IS 분쟁조정 -->
|
||||
<link rel="shortcut icon" href="/img/seed/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" href="/img/seed/favicon.ico" type="image/x-icon">
|
||||
|
||||
<!-- css -->
|
||||
<link rel="stylesheet" href="/css/seed/seed.reset.css">
|
||||
<link rel="stylesheet" href="/css/seed/seed.layout.css">
|
||||
<link rel="stylesheet" href="/css/seed/layout.css">
|
||||
<link rel="stylesheet" href="/css/seed/button.css">
|
||||
<link rel="stylesheet" href="/css/seed/seed.contents.css">
|
||||
<link rel="stylesheet" href="/css/seed/seed.mediaquery.css">
|
||||
|
||||
<!-- <link rel="stylesheet" href="/css/lib/jquery.mCustomScrollbar.min.css"> -->
|
||||
|
||||
<link rel="stylesheet" href="/css/seed/jquery-ui.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/jquery-ui.min.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/smartPop.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/space.css"/>
|
||||
<link rel="stylesheet" href="/css/seed/picker.default.css">
|
||||
<link rel="stylesheet" href="/css/seed/picker.default.date.css">
|
||||
<!-- <link rel="stylesheet" href="/css/case/common.css"> -->
|
||||
|
||||
<!-- 캘린더css -->
|
||||
<!-- <link rel="stylesheet" href="/css/case/fullcalendar.min.css">
|
||||
<link rel="stylesheet" href="/css/case/fullcalendar.print.css" media='print'>
|
||||
<link rel="stylesheet" href="/css/case/scheduler.min.css">
|
||||
<link type="text/css" rel="stylesheet" href="/css/case/jquery.qtip.css" /> -->
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="/css/seed/clipreport.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/seed/UserConfig.css">
|
||||
<link rel="stylesheet" type="text/css" href="/css/seed/font.css">
|
||||
<!-- css -->
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<script src="/js/lib/polyfill/IE9.js"></script>
|
||||
<script src="/js/lib/polyfill/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!-- js -->
|
||||
<!-- 필요한 js 추후 추가 예정 -->
|
||||
<!-- 라이브러리, 플러그인 -->
|
||||
<!-- <script src="/js/lib/jquery-1.9.1.min.js"></script>
|
||||
<script src="/js/lib/jquery-ui.min.js"></script>
|
||||
<script src="/js/lib/jquery.blockUI.js"></script>
|
||||
<script src="/js/lib/jquery.pjax.js"></script>
|
||||
<script src="/js/lib/modernizr-custom.js"></script>
|
||||
<script src="/js/lib/jquery.mCustomScrollbar.concat.min.js"></script>
|
||||
<script src="/js/lib/jquery.bxslider.min.js"></script>
|
||||
<script src="/js/lib/picker.js"></script>
|
||||
<script src="/js/lib/picker.date.js"></script>
|
||||
<script src="/js/lib/legacy.js"></script>
|
||||
<script src="/js/lib/base64.js"></script> -->
|
||||
|
||||
<!-- 라이브러리, 플러그인 끝 -->
|
||||
<!-- <script src="/js/jquery.seed.js"></script>
|
||||
<script src="/js/smartPop.js"></script>
|
||||
<script src="/js/seed.common.js"></script>
|
||||
<script src="/js/seed.tab.js"></script> -->
|
||||
<script src="/js/seed/seed.app.js"></script>
|
||||
|
||||
<script src="/js/seed/commonFileUtil.js"></script>
|
||||
<!-- <script src="/js/jquery.form.js"></script>
|
||||
<script src="/js/common_XHR.js"></script>
|
||||
<script src="/js/common.js"></script>
|
||||
<script src="/js/DateTimePicker.js"></script>
|
||||
<script src="/js/jquery.selectboxes.js"></script> -->
|
||||
|
||||
<!-- 캘린더js -->
|
||||
<!-- <script src="/js/moment.min.js"></script>
|
||||
<script src="/js/fullcalendar.min.js"></script>
|
||||
<script src="/js/scheduler.min.js"></script>
|
||||
<script src="/js/gcal.js"></script>
|
||||
<script src="/js/jquery.qtip.js"></script>
|
||||
|
||||
<script type='text/javascript' src='/js/clipreport.js'></script>
|
||||
<script type='text/javascript' src='/js/UserConfig.js'></script> -->
|
||||
<!-- js -->
|
||||
|
||||
<script>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
BIN
src/main/webapp/editor/emoticon/Ambivalent.png
Normal file
|
After Width: | Height: | Size: 701 B |
BIN
src/main/webapp/editor/emoticon/Angel.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/main/webapp/editor/emoticon/Angry.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/main/webapp/editor/emoticon/Blush.png
Normal file
|
After Width: | Height: | Size: 720 B |
BIN
src/main/webapp/editor/emoticon/Confused.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/main/webapp/editor/emoticon/Crazy.png
Normal file
|
After Width: | Height: | Size: 852 B |
BIN
src/main/webapp/editor/emoticon/Crying.png
Normal file
|
After Width: | Height: | Size: 722 B |
BIN
src/main/webapp/editor/emoticon/Frown.png
Normal file
|
After Width: | Height: | Size: 655 B |
BIN
src/main/webapp/editor/emoticon/Gasp.png
Normal file
|
After Width: | Height: | Size: 786 B |
BIN
src/main/webapp/editor/emoticon/Grin.png
Normal file
|
After Width: | Height: | Size: 769 B |
BIN
src/main/webapp/editor/emoticon/Heart.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/main/webapp/editor/emoticon/Hot.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/main/webapp/editor/emoticon/Innoncent.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
src/main/webapp/editor/emoticon/Kiss.png
Normal file
|
After Width: | Height: | Size: 735 B |
BIN
src/main/webapp/editor/emoticon/LargeGasp.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
src/main/webapp/editor/emoticon/Laugh.png
Normal file
|
After Width: | Height: | Size: 754 B |
BIN
src/main/webapp/editor/emoticon/Money-mouth.png
Normal file
|
After Width: | Height: | Size: 777 B |
BIN
src/main/webapp/editor/emoticon/Naughty.png
Normal file
|
After Width: | Height: | Size: 889 B |
BIN
src/main/webapp/editor/emoticon/Nerd.png
Normal file
|
After Width: | Height: | Size: 765 B |
BIN
src/main/webapp/editor/emoticon/Pirate.png
Normal file
|
After Width: | Height: | Size: 918 B |
BIN
src/main/webapp/editor/emoticon/Sarcastic.png
Normal file
|
After Width: | Height: | Size: 799 B |
BIN
src/main/webapp/editor/emoticon/Sealed.png
Normal file
|
After Width: | Height: | Size: 734 B |
BIN
src/main/webapp/editor/emoticon/Sick.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
src/main/webapp/editor/emoticon/Smile.png
Normal file
|
After Width: | Height: | Size: 700 B |
BIN
src/main/webapp/editor/emoticon/Sweat.png
Normal file
|
After Width: | Height: | Size: 786 B |
BIN
src/main/webapp/editor/emoticon/ThumbsDown.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
src/main/webapp/editor/emoticon/ThumbsUp.png
Normal file
|
After Width: | Height: | Size: 669 B |
BIN
src/main/webapp/editor/emoticon/Tongue.png
Normal file
|
After Width: | Height: | Size: 703 B |
BIN
src/main/webapp/editor/emoticon/Undecided.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
src/main/webapp/editor/emoticon/VeryAngry.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/main/webapp/editor/emoticon/Wink.png
Normal file
|
After Width: | Height: | Size: 688 B |
BIN
src/main/webapp/editor/emoticon/Yum.png
Normal file
|
After Width: | Height: | Size: 681 B |
BIN
src/main/webapp/editor/emoticon/ohnoes.png
Normal file
|
After Width: | Height: | Size: 816 B |
BIN
src/main/webapp/editor/icon/add.png
Normal file
|
After Width: | Height: | Size: 733 B |
BIN
src/main/webapp/editor/icon/arrow_refresh.png
Normal file
|
After Width: | Height: | Size: 685 B |
BIN
src/main/webapp/editor/icon/arrow_updown.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/main/webapp/editor/icon/attach.png
Normal file
|
After Width: | Height: | Size: 391 B |
BIN
src/main/webapp/editor/icon/backcolor.png
Normal file
|
After Width: | Height: | Size: 892 B |
BIN
src/main/webapp/editor/icon/bold.png
Normal file
|
After Width: | Height: | Size: 304 B |
BIN
src/main/webapp/editor/icon/brick.png
Normal file
|
After Width: | Height: | Size: 452 B |
BIN
src/main/webapp/editor/icon/bricks.png
Normal file
|
After Width: | Height: | Size: 825 B |
BIN
src/main/webapp/editor/icon/btn_apply_img_property.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
src/main/webapp/editor/icon/btn_close.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/main/webapp/editor/icon/btn_close2.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/main/webapp/editor/icon/btn_createlink.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
src/main/webapp/editor/icon/btn_delete.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
src/main/webapp/editor/icon/btn_down.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/webapp/editor/icon/btn_insertimages.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
src/main/webapp/editor/icon/btn_up.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/webapp/editor/icon/btn_upload.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
src/main/webapp/editor/icon/btn_upload_down.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
src/main/webapp/editor/icon/btn_upload_up.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
src/main/webapp/editor/icon/cell_property.png
Normal file
|
After Width: | Height: | Size: 716 B |
BIN
src/main/webapp/editor/icon/closeX.gif
Normal file
|
After Width: | Height: | Size: 75 B |
BIN
src/main/webapp/editor/icon/color_selector.gif
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/webapp/editor/icon/color_selector.png
Normal file
|
After Width: | Height: | Size: 932 B |
BIN
src/main/webapp/editor/icon/context_menu.png
Normal file
|
After Width: | Height: | Size: 476 B |
BIN
src/main/webapp/editor/icon/createlink.png
Normal file
|
After Width: | Height: | Size: 343 B |
BIN
src/main/webapp/editor/icon/decrease.png
Normal file
|
After Width: | Height: | Size: 581 B |
BIN
src/main/webapp/editor/icon/delete.png
Normal file
|
After Width: | Height: | Size: 715 B |
BIN
src/main/webapp/editor/icon/design.png
Normal file
|
After Width: | Height: | Size: 704 B |
BIN
src/main/webapp/editor/icon/disk.png
Normal file
|
After Width: | Height: | Size: 620 B |
BIN
src/main/webapp/editor/icon/email.png
Normal file
|
After Width: | Height: | Size: 641 B |
BIN
src/main/webapp/editor/icon/emoticon.png
Normal file
|
After Width: | Height: | Size: 769 B |
BIN
src/main/webapp/editor/icon/emoticon2.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/main/webapp/editor/icon/file_tree.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/webapp/editor/icon/folder.png
Normal file
|
After Width: | Height: | Size: 537 B |
BIN
src/main/webapp/editor/icon/folder_add.png
Normal file
|
After Width: | Height: | Size: 668 B |
BIN
src/main/webapp/editor/icon/folder_delete.png
Normal file
|
After Width: | Height: | Size: 666 B |
BIN
src/main/webapp/editor/icon/folder_magnify.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
src/main/webapp/editor/icon/font.png
Normal file
|
After Width: | Height: | Size: 567 B |
BIN
src/main/webapp/editor/icon/fontbgdolor.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/webapp/editor/icon/fontsize.png
Normal file
|
After Width: | Height: | Size: 260 B |
BIN
src/main/webapp/editor/icon/forecolor.png
Normal file
|
After Width: | Height: | Size: 209 B |
BIN
src/main/webapp/editor/icon/ftv2folderclosed.gif
Normal file
|
After Width: | Height: | Size: 402 B |
BIN
src/main/webapp/editor/icon/ftv2folderopen.gif
Normal file
|
After Width: | Height: | Size: 389 B |
BIN
src/main/webapp/editor/icon/ftv2lastnode.gif
Normal file
|
After Width: | Height: | Size: 65 B |
BIN
src/main/webapp/editor/icon/ftv2node.gif
Normal file
|
After Width: | Height: | Size: 70 B |
BIN
src/main/webapp/editor/icon/fullscreen.png
Normal file
|
After Width: | Height: | Size: 594 B |
BIN
src/main/webapp/editor/icon/hr.png
Normal file
|
After Width: | Height: | Size: 520 B |
BIN
src/main/webapp/editor/icon/image.png
Normal file
|
After Width: | Height: | Size: 606 B |
BIN
src/main/webapp/editor/icon/image_.png
Normal file
|
After Width: | Height: | Size: 516 B |
BIN
src/main/webapp/editor/icon/image_add.png
Normal file
|
After Width: | Height: | Size: 653 B |
BIN
src/main/webapp/editor/icon/image_edit.png
Normal file
|
After Width: | Height: | Size: 783 B |
BIN
src/main/webapp/editor/icon/image_link.png
Normal file
|
After Width: | Height: | Size: 835 B |
BIN
src/main/webapp/editor/icon/image_property.png
Normal file
|
After Width: | Height: | Size: 783 B |
BIN
src/main/webapp/editor/icon/image_search.png
Normal file
|
After Width: | Height: | Size: 957 B |
BIN
src/main/webapp/editor/icon/image_upload.png
Normal file
|
After Width: | Height: | Size: 755 B |
BIN
src/main/webapp/editor/icon/imagecenter.png
Normal file
|
After Width: | Height: | Size: 704 B |
BIN
src/main/webapp/editor/icon/images.png
Normal file
|
After Width: | Height: | Size: 661 B |
BIN
src/main/webapp/editor/icon/increase.png
Normal file
|
After Width: | Height: | Size: 585 B |
BIN
src/main/webapp/editor/icon/indent.png
Normal file
|
After Width: | Height: | Size: 353 B |
BIN
src/main/webapp/editor/icon/insert_html.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
src/main/webapp/editor/icon/insertfirstparagraph.png
Normal file
|
After Width: | Height: | Size: 236 B |
BIN
src/main/webapp/editor/icon/insertlastparagraph.png
Normal file
|
After Width: | Height: | Size: 237 B |