博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ckeditor富文本编辑器的使用和图片上传,复制粘贴图片上传
阅读量:4026 次
发布时间:2019-05-24

本文共 2361 字,大约阅读时间需要 7 分钟。

     项目开发需要用到在线编辑和图片上传,最终讨论使用ckeditor,原因就是其丰富的API。考虑到最新版本ckeditor5可能不够稳定,我们选择使用ckedtior4.9.2版本。官网链接:

特别注意:下面截图中url中的/editor/upload/1?其中的 /1 是根据自己需求添加不同类型数据上传时候的区分,可以去掉,写成/editor/upload?

初始化ckeditor

 第一步:下载ckeditor并引入js;

   

第二步:在html页面引入textarea标签;

第三步:在js中初始化富文本编辑器;

//初始换编辑器	var editor = CKEDITOR.replace('editor', { 		filebrowserImageUploadUrl :"/picture/editor/upload/1",		removePlugins:'elementspath,resize',		codeSnippet_theme: 'zenburn',		height:'600'	});

注意:其中‘editor’必须跟第二步引入的textarea便签的id一致。filebrowserImageUploadUrl 是用来配置图片上传的;

做完这三步,富文本编辑器就可以基本使用。

      但是,如果 进行图片上传,我们需要将图片单独上传到我们制定的服务器,然后返回url存储到数据库,这样处理图片才是最合理的。下面我们来说说图片上传:

图片上传:

第一步:在初始化ckeditor是配置filebrowserImageUploadUrl 属性,属性对应的值就是图片上传的后台连接;

//初始换编辑器	var editor = CKEDITOR.replace('editor', { 		filebrowserImageUploadUrl :"/picture/editor/upload/1",		removePlugins:'elementspath,resize',		codeSnippet_theme: 'zenburn',		height:'600'	});

第二步:配置config参数,在config.js中加入以下配置

/*将编辑器的语言设置为中文*/config.language = 'zh-cn';/*去掉图片预览框的文字*/config.image_previewText = ' ';/*开启工具栏“图像”中文件上传功能,后面的url为图片上传要指向的的action或servlet*/config.filebrowserImageUploadUrl= "/blog/uploadEditorImage";

第三步:写后台上传图片代码:

注意:后台上传图片处理完,必须返回固定格式的json数据:

 上传成功时,返回:

        { "uploaded":1, "url":"图片访问路径"}

    上传失败时,返回

          {"uploaded":0,"error":{"message":"失败原因"  }}

@RequestMapping(value = "/editor/upload", method = RequestMethod.POST)@ResponseBodypublic String uploadPicture( @RequestParam("upload") MultipartFile file, Model model, HttpServletRequest request, HttpSession session, HttpServletResponse response) {		try {					    //具体伤处图片操作都不易呀,省略           ...... ......						//设置返回的图片url			String url = targetPath + "/" +fileName;						Map
reMap = new HashMap
(); //必须返回这样格式的json字符串 reMap.put("uploaded", "1"); reMap.put("url", url); return JSON.toJSONString(reMap); } catch (Exception e) { logger.error("上传图片失败", e); return "false"; } }

第四步:进行上传图片操作:

跳转图像信息页面,点击确定即可

 

第五步:获取editor内容,提交富文本编辑器数据:

/* 获取editor中的内容 */var content = editor.getData();/* 设置editor中的内容 */editor.setData(content);

将获取的数据放入表单标签,就可以提交数据了。数据格式是一堆html标签的字符串:

复制图片上传:

 ckeditor是支持复制上传的,只需要在之前的js的filebrowserImageUploadUrl配置的上传路径最后加一个?就可以了,如下:

//初始换编辑器	var editor = CKEDITOR.replace('editor', { 		filebrowserImageUploadUrl :"/picture/editor/upload/1?",		removePlugins:'elementspath,resize',		codeSnippet_theme: 'zenburn',		height:'600'	});

 

你可能感兴趣的文章
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>