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 相关文章推荐
Jquery 插件学习实例1 插件制作说明与tableUI优化
Apr 02 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
thinkphp 表名 大小写 窍门
Feb 01 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
Apr 06 Javascript
分享使用AngularJS创建应用的5个框架
Dec 05 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
javascript下使用Promise封装FileReader
Feb 19 Javascript
jQuery插件扩展测试实例
Jun 21 Javascript
jQuery实现获取元素索引值index的方法
Sep 18 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
Oct 15 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
Jul 31 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 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脚本的10个技巧(7)
2006/10/09 PHP
用php来检测proxy
2006/10/09 PHP
PHP中str_replace函数使用小结
2008/10/11 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
Angular2学习教程之ng中变更检测问题详解
2017/05/28 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
vue实现循环切换动画
2018/10/17 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
Vue.js实现可编辑的表格
2019/12/11 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
Django之腾讯云短信的实现
2020/06/12 Python
基于HTML5 Canvas 实现商场监控实例详解
2017/11/20 HTML / CSS
在线服装零售商:SheIn
2016/07/22 全球购物
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
客服部工作职责范本
2014/02/14 职场文书
应届生找工作求职信
2014/06/24 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
学习与创新自我评价
2015/03/09 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python