[CKEditor] JSP에서 사용하기

2018.09.06 16:06

졸리운_곰 조회 수:124

[CKEditor] JSP에서 사용하기

1. upload.jsp 파일을 ckeditor 폴더에 업로드

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.util.Iterator"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="java.io.File, java.util.List, java.io.IOException"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.http.protocol.HttpContext"%>

<%@page import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>upload</title>
</head>
<body>
<%
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);  //multipart로 전송되었는가 체크
    if (isMultipart) {
        // 설정단계
         File temporaryDir = new File("c:\tmp\");  //업로드된 파일의 임시 저장 폴더
         String realDir = config.getServletContext().getRealPath(request.getParameter("realDir"));  //실제 저장될 파일경로
         String sFunc = request.getParameter("CKEditorFuncNum");
         String realUrl = request.getParameter("realUrl");

         // 디스크 기반의 파일 아이템 팩토리 생성
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(1 * 1024 * 1024);  //최대 메모리 크기
        factory.setRepository(temporaryDir);  // 임시저장폴더 연결

        // 구현단계
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(10 * 1024 * 1024);  //최대 업로드 크기
        List<FileItem> items = upload.parseRequest(request); //이 부분에서 파일이 생성
        Iterator iter = items.iterator();
 
        while (iter.hasNext()) {
            FileItem fileItem = (FileItem) iter.next();
            if (fileItem.isFormField()) {  // File 컴포넌트가 아닌 일반 컴포넌트일 경우
                out.println(fileItem.getFieldName() + "=" + fileItem.getString("euc-kr") + "<br/>");
            }else{
                if (fileItem.getSize() > 0) {  //파일이 업로드 되었나 안되었나 체크
                    String fieldName = fileItem.getFieldName();
                    String fileName = fileItem.getName();
                    String contentType = fileItem.getContentType();
                    boolean isInMemory = fileItem.isInMemory();
                    long sizeInBytes = fileItem.getSize();
                    
                    /* 
                     out.println("[realDir] : "+ realDir +"<br/>");
                     out.println("[fieldName] : "+ fieldName +"<br/>");
                    out.println("[fileName] : "+ fileName +"<br/>");
                    out.println("[contentType] : "+ contentType +"<br/>");
                    out.println("[isInMemory] : "+ isInMemory +"<br/>");
                    out.println("[sizeInBytes] : "+ sizeInBytes +"<br/>");
                     */
                     
                     out.println("<script type='text/javascript'>window.parent.CKEDITOR.tools.callFunction(" + sFunc + ", '"+ realUrl + fileName + "', '완료');</script>");

                     try {
                         File uploadedFile = new File(realDir, fileName);
                         fileItem.write(uploadedFile);  //실제 디렉토리에 카피
                         fileItem.delete();   //temp폴더의 파일 제거
                     } catch(IOException ex) {
                         out.println("error : "+ ex +"<br/>");
                     }
                }
            }
        }
    } else {
//         out.println("인코딩 타입이 multipart/form-data 가 아님.");
    }
%>
</body>
</html>


2. commons-fileuplaod-1.2.1.jar  과   commons-httpclient-3.1.jar  파일을  라이브러리 안에 추가
파일은 http://blog.daum.net/_blog/BlogTypeView.do?blogid=0FLdZ&articleno=5 에서 다운로드 가능


3. 에디터에 upload 경로 추가
CKEDITOR.replace( 'editor1',{
    'filebrowserUploadUrl':'/ckeditor/upload.jsp?'
    +'realUrl=http://홈페이지/ckeditor/upload'
    +'&realDir=upload'
});

[출처] http://www.happyjung.com/lecture/2069

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
146 Connect to MSSQL Server in JPA file 졸리운_곰 2020.01.24 85
145 Tomcat 및 MySQL 관련 한글 인코딩 문제 졸리운_곰 2020.01.23 88
144 전자정부 표준 프레임워크 egov bootstrap 부트스트랩 적용 file 졸리운_곰 2020.01.15 2130
143 JHIPSTER로 빠르게 SPRING BOOT, ANGULAR PROJECT 세팅하기 file 졸리운_곰 2019.12.31 246
142 Spring Boot와 AngualrJS를 조합한 코드 자동 생성 도구(scaffolding) file 졸리운_곰 2019.12.31 88
141 spring security 파헤치기 (구조, 인증과정, 설정, 핸들러 및 암호화 예제, @Secured, @AuthenticationPrincipal, taglib) file 졸리운_곰 2019.04.06 276
140 DAO vs DTO(=VO) 개념 알아보기 졸리운_곰 2019.01.04 217
139 DAO / VO / DTO란? 졸리운_곰 2019.01.04 272
138 JSP get 전송을 수신페이지에서 hidden으로 받아 javascript에서 활용 졸리운_곰 2019.01.03 60
137 JSP와 자바스크립트간의 정보 전송방법 file 졸리운_곰 2019.01.03 95
136 Intellij 에서 spring boot + jsp 설정 file 졸리운_곰 2018.12.01 143
135 How to Setup Spring-Boot with ReactJS and Webpack 스프링부트와 ReactJS와 webpack 패키징 file 졸리운_곰 2018.10.28 75
134 Use React and Spring Boot to Build a Simple CRUD App 기본적인 스프링부트와 React.js의 CRUD 기능 구현 file 졸리운_곰 2018.10.28 171
133 Bootiful Development with Spring Boot and React 스프링 부트와 리엑트.js의 연동 file 졸리운_곰 2018.10.28 121
132 [Spring] 스프링 비밀번호 암호화 졸리운_곰 2018.10.08 2280
131 cos.jar로 파일 업로드 하기 졸리운_곰 2018.09.11 207
130 React.js and Spring Data REST : react.js 자바 스프링 연동 file 졸리운_곰 2018.09.11 2106
129 How To Integrate React in JSP Application : React와 JSP 연동 file 졸리운_곰 2018.09.11 1516
» [CKEditor] JSP에서 사용하기 졸리운_곰 2018.09.06 124
127 [JSP]톰캣 서버 IntelliJ 구동,JSP 간단한 예제 실행 file 졸리운_곰 2018.09.05 309
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED