ETJava Beta | Java    注册   登录
  • ckeditor 配置图片上传

    发表于 2024-04-15 21:51:31     阅读(197)     博客类别:富文本编辑器

    ckeditor 配置图片上传

    ckeditor官网下载地址 https://ckeditor.com/ckeditor-4/download/
    
    选择完整版下载  - Full package

     

    默认本地上传是没有开启的 需要手动开启
    
    找到ckeditor/plugins/image/dialogs/image.js文件 打开 
    然后搜索 id:"Upload",hidden   默认值是!0 我们改成0即可

    配置上传地址

    ckeditor中需要配置我们自己的上传请求地址
    
    找到ckeditor下的config.js 打开 添加如下内容
    config.filebrowserUploadUrl="/admin/film/ckeditorUpload";
    config.image_previewText=' ';// 预览区域内容改为空白 否则会有图片和文字
    
    ckeditor的上传路径配置完成后 还需要创建controller进行处理

    处理上传图片的controller

    package com.et.controller.admin;
    
    import com.et.util.DateUtil;
    import org.apache.commons.io.FileUtils;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.File;
    
    /**
     * @Author: ETJAVA
     * @CreateTime: 2024-04-15  17:49
     * @Description: TODO  后台文件上传
     * @Version: 1.0
     */
    @RestController
    @RequestMapping("/admin/film/")
    public class AdminFilmController {
    
        // imageFilePath: C:\Users\etjav\Desktop\Demo\film\src\main\resources\static\filmImage\
        @Value("${imageFilePath}")
        private String imageFilePath;
    
        /**
         * 上传图片
         * @param file
         * @return
         */
        @ResponseBody
        @RequestMapping("/ckeditorUpload")
        public String ckeditorUpload(@RequestParam("upload") MultipartFile file, String CKEditorFuncNum)throws Exception{
            // 获取文件名
            String fileName = file.getOriginalFilename();
            // 获取文件的后缀名
            String suffixName = fileName.substring(fileName.lastIndexOf("."));
            String newFileName= DateUtil.getCurrentDateStr()+suffixName;
            FileUtils.copyInputStreamToFile(file.getInputStream(), new File(imageFilePath+newFileName));
            StringBuffer sb=new StringBuffer();
            sb.append("<script type=\"text/javascript\">");
            sb.append("window.parent.CKEDITOR.tools.callFunction("+ CKEditorFuncNum + ",'" +"/filmImage/"+ newFileName + "','')");
            sb.append("</script>");
            return sb.toString();
        }
    }
    

     

    注意:springboot项目中上传完成后不会立即回显 需要自定义本地路径的虚拟映射 参考 http://etjava.cn/blog/article/84