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实现的radio重新选中的问题
Jul 03 Javascript
JS实现方向键切换输入框焦点的方法
Aug 19 Javascript
javascript计时器编写过程与实现方法
Feb 29 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
vue-router项目实战总结篇
Feb 11 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
JavaScript数组特性与实践应用深入详解
Dec 30 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
vue-router 中 meta的用法详解
Nov 01 Javascript
详解一些适用于Node.js的命名约定
Dec 08 Javascript
原生jQuery实现只显示年份下拉框
Dec 24 jQuery
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
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中的常用魔术方法总结
2013/08/02 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
理理Vue细节(推荐)
2019/04/16 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python操作CouchDB数据库简单示例
2015/03/10 Python
Python微信公众号开发平台
2018/01/25 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
python监控文件并且发送告警邮件
2018/06/21 Python
python实现Zabbix-API监控
2018/09/17 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
学雷锋活动总结范文
2014/04/25 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python