Summernote实现图片上传功能的简单方法


Posted in Javascript onJuly 11, 2016

还是接着之前说过的最近在写一个BootStrap网页....然后要用富文本编辑器,随便搜了下就选了这货

然后发现了很尴尬的问题...图片上传功能无效....然后各种搜索各种无果...最后怒翻Summernote官方文档总算解决了,总之写下解决过程

后端部分就不提供代码了,满大街都是,这里假设后端拿到上传文件后返回文件的地址

首先附上参考资料:Summernote官方开发文档

简单说下Summernote的图片上传功能实现方案

首先根据官方文档提供的API,挂接文件上传事件,然后自己用JS重新上传文件,最后用API把图片插入到编辑框内即可

本来是挺简单的问题,可惜官方也不知道为什么居然更改了接口写法...然后网上搜到的资料全都坑掉了....虽然也有我搜的不够深入的原因

总之整理下核心的两个SummernoteAPI,接管文件上传事件和插入图片,根据官方文档说明格式如下

//接管图片上传事件
$('#summernote').summernote({
  callbacks: {
   onImageUpload: function(files) {
    // 上传图片到服务器并且插入图片到编辑框
   }
  }
});

//插入图片
$('#summernote').summernote('insertImage', url, filename);
//更加详细的解释见上面提供的官网API文档

然后就可以很轻松的实现支持上传图片的Summernote编辑框了

代码如下:

$('#summernote').summernote({
  callbacks: {
    onImageUpload: function(files) {
      //上传图片到服务器,使用了formData对象,至于兼容性...据说对低版本IE不太友好
      var formData = new FormData();
      formData.append('file',files[0]);
      $.ajax({
        url : 'upload',//后台文件上传接口
        type : 'POST',
        data : formData,
        processData : false,
        contentType : false,
        success : function(data) {
          $('#summernote').summernote('insertImage',data,'img');
        }
      });
    }
  }
});

最后,这只实现了一个最简单的,兼容性不怎样而且完全不考虑错误异常提示的图片上传功能而已....请根据需要自行修改

以上这篇Summernote实现图片上传功能的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
浅谈EasyUI中编辑treegrid的方法
Mar 01 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
JS实现读取xml内容并输出到div中的方法示例
Apr 19 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
May 07 Javascript
Vue中点击active并第一个默认选中功能的实现
Feb 24 Javascript
Element Steps步骤条的使用方法
Jul 26 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 Javascript
JavaScript中setter和getter方法介绍
Jul 11 #Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 #Javascript
仿百度换肤功能的简单实例代码
Jul 11 #Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 #Javascript
全面理解闭包机制
Jul 11 #Javascript
js 判断一组日期是否是连续的简单实例
Jul 11 #Javascript
利用css+原生js制作简单的钟表
Apr 07 #Javascript
You might like
用PHP连接Oracle数据库
2006/10/09 PHP
用Php实现链结人气统计
2006/10/09 PHP
PHP脚本的10个技巧(8)
2006/10/09 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
jquery实用代码片段集合
2010/08/12 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
js数组的操作指南
2014/12/28 Javascript
js动态切换图片的方法
2015/01/20 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
node网页分段渲染详解
2016/09/05 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
工作经验交流材料
2014/12/30 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
vue封装数字翻牌器
2022/04/20 Vue.js