[CKEditor] JSP에서 사용하기 > 기술자료 | 해피정닷컴

[CKEditor] JSP에서 사용하기 > 기술자료

본문 바로가기

사이트 내 전체검색

[CKEditor] JSP에서 사용하기 > 기술자료

Editor [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://blog.daum.net/_blog/BlogTypeView.do?blogid=0FLdZ&articleno=5 

댓글목록

등록된 댓글이 없습니다.


Total 39건 1 페이지
  • RSS
기술자료 목록
39
Editor   2762  2023-08-11 12:23  
38
Editor   2825  2023-08-09 21:54 ~ 2023-08-09 21:56  
37
Editor   4101  2023-03-31 09:54 ~ 2023-03-31 12:51  
36
Editor   5953  2021-10-26 18:16 ~ 2021-11-09 14:15  
35
Editor   6282  2021-07-20 14:51 ~ 2021-07-20 15:01  
34
Editor   5896  2021-05-20 16:27 ~ 2021-05-20 16:40  
33
Editor   7071  2020-10-11 11:46 ~ 2020-10-12 09:49  
32
Editor   6060  2020-10-07 17:53 ~ 2020-10-07 18:05  
31
Editor   8731  2018-12-16 23:11 ~ 2021-06-03 14:44  
30
Editor   10722  2017-09-18 12:51  
29
Editor   12437  2017-09-18 11:38 ~ 2017-12-01 05:01  
28
Editor   13527  2017-05-25 18:08  
27
Editor   19404  2016-11-24 18:19 ~ 2021-05-21 19:33  
26
Editor   9775  2016-09-10 11:11  
25
Editor   33360  2016-08-26 22:27 ~ 2021-01-18 17:01  
24
Editor   15780  2016-03-03 17:30 ~ 2021-05-21 19:26  
23
Editor   14673  2016-03-03 14:54  
열람
Editor   19647  2016-03-03 14:51  
21
Editor   28673  2014-02-04 11:29  
20
Editor   19412  2014-01-21 04:09  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.