[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 2,634건 44 페이지
  • RSS
기술자료 목록
1774
전자결제   27847  2016-03-11 18:59 ~ 2016-03-14 00:00  
1773
XpressEngine   13905  2016-03-10 22:31  
1772
ClassicASP   23059  2016-03-09 22:31  
1771
호스팅   13931  2016-03-07 10:42 ~ 2017-09-21 00:00  
1770
Editor   15760  2016-03-03 17:30 ~ 2021-05-21 19:26  
1769
Editor   14664  2016-03-03 14:54  
열람
Editor   19636  2016-03-03 14:51  
1767
그누보드   12521  2016-03-03 13:28  
1766
WindowsServer   15519  2016-02-29 18:25  
1765
ClassicASP   17935  2016-02-25 08:45  
1764
ClassicASP   13694  2016-02-25 01:04  
1763
ClassicASP   19646  2016-02-25 00:52 ~ 2017-01-13 00:00  
1762
ClassicASP   15303  2016-02-25 00:48  
1761
ClassicASP   17810  2016-02-25 00:16 ~ 2016-02-26 00:00  
1760
WindowsServer   11975  2016-02-24 21:32  
1759
HTML   17611  2016-02-21 06:31  
1758
HTML   39125  2016-02-21 00:58 ~ 2016-02-21 00:00  
1757
일반   10219  2016-02-19 17:54  
1756
일반   10899  2016-02-19 17:32  
1755
HTML   14906  2016-02-19 16:59  

검색

해피정닷컴 정보

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

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