Summernote是一款简洁大方的富文本编辑器,基于Bootstrap 框架,实用性很高,但是默认上传图片是保存二进制图片数据,这样会造成数据库庞大,本文介绍如何将图片上传改为保存到图床,数据库直接保存路径地址。详见博客:http://www.dustyblog.cn/138.html
如果你还没有自己的图床,建议可以去七牛云注册一个,使用介绍之前有介绍过:创建自己的图床
一、初始化富文本编辑器
- $(function() {
- $('.summernote').summernote({
- height: 300,
- tabsize: 2,
- lang: 'zh-CN',
- callbacks: {
- // 重写图片上传;
- onImageUpload: function (files) { //the onImageUpload API
- img = sendFile(file);
- }
- }
- });
- })
二、在初始化方法中,利用了 callbacks 重写了图片上传方法sendFile():
- function sendFile(file) {
- data = new FormData();
- data.append("file", file);
- console.log(data);
- $.ajax({
- data: data,
- type: "POST",
- url: "/uploadQiuNiu",
- cache: false,
- contentType: false,
- processData: false,
- success: function(url) {
- $('#articleContent').summernote('insertImage', url);
- }
- });
- }
这里,将图片上传到control层,然后再上传到七牛云图床上,具体的实现方法,参照之前的文章Spring MVC 上传图片至七牛云图床
三、附上 Summernote 常用方法
- // 获取编辑器内的HTML内容
- var str = $('#summernote').summernote('code');
- // 如果初始化了多个编辑器,可以通过eq()方法获取某个编辑器的HTML内容。Eg:获取第二个编辑器内容
- var markupStr = $('.summernote').eq(1).summernote('code');
- // 给指定的编辑器设置HTML内容
- var str = 'Hello World';
- $('#summernote').summernote('code', str);
- // 返回编辑器中内容是否为空
- if ($('#summernote').summernote('isEmpty')) {
- alert('contents is empty');
- }
- // 清除内容和存储记录
- $('#summernote').summernote('reset');