ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CKEDITOR] CKEDITOR 이미지 업로드(스프링)
    CKEDITOR 2020. 10. 14. 12:21
    반응형

    이번 포스팅에서는 Ckeditor 이미지 업로드를 하려고한다.

    필자는 스프링을 서버로 사용한다.

     

     

     

    먼저 ckfinder를 추가한다.

    uploadUrl은 이미지 업로드 시 서버로 전송하는 url이다.

    ckfinder: {
    	uploadUrl: '/ajax/image.do'
    },

     

     

     

     

    Ckeditor 이미지 업로드는 서버에 이미지를 보내고 return 받기 전까지 base64를 이용하여 이미지를 보여주고 return 받을 때 base64 코드를 이미지 url로 변경해준다.

    필자 서버 소스이다.

     

    return 할 때 uploadedurl을 보내주면 이미지 업로드가 정상적으로 작동한다.

    나머지 위에 코드는 이미지 저장하는 로직으로 참고만 하면 된다.

    그리고 이미지 업로드는 기본적으로 다중 업로드가 가능하여 for문을 사용하여 처리하였다.

    @Value("#{props['editor.img.save.url']}")
    private String saveUrl;
    
    @Value("#{props['editor.img.load.url']}")
    private String loadUrl;
    
    @Value("#{props['editor.mode']}")
    private String mode;
    
    @RequestMapping(value="/ajax/image.do")
    public ModelAndView image(@RequestParam Map<String, Object> map, MultipartHttpServletRequest request) throws Exception{
    	ModelAndView mv = new ModelAndView("jsonView");
    
    	List<MultipartFile> fileList = request.getFiles("upload");
    
    	String imgPath = null;
    
    	for (MultipartFile mf : fileList) {
    		if (fileList.get(0).getSize() > 0) {
    			String originFileName = mf.getOriginalFilename(); // 원본 파일 명
    			log.debug("originFileName==" + originFileName);
    			String ext = FilenameUtils.getExtension(originFileName);
    			String newInfImgFileName = "img_" + UUID.randomUUID() + "." + ext;
    
    			imgPath = loadUrl + newInfImgFileName;
    
    			File file = new File(saveUrl + newInfImgFileName);
    
    			mf.transferTo(file);
    
    			if(!"local".equals(mode)) {
    				Runtime.getRuntime().exec("chmod 666 " + file);
    			}
    
    		}
    
    	}
    
        mv.addObject("uploaded", true);
        mv.addObject("url", imgPath);
        return mv;
    }

     

     

     

     

    정상적으로 이미지가 업로드 되었다.

    반응형

    'CKEDITOR' 카테고리의 다른 글

    [CKEDITOR] CKEDITOR 글꼴(FONT-FAMILY) 추가  (0) 2020.10.14
    [CKEDITOR] CKEDITOR 사용법(언어 한글)  (0) 2020.10.14
Designed by Tistory.