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 存在陷阱 删除某一区域所有节点
May 10 Javascript
JQuery里选择超链接的实现代码
May 22 Javascript
javasript实现密码的隐藏与显示
May 08 Javascript
Angular实现form自动布局
Jan 28 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
Feb 28 Javascript
Axios学习笔记之使用方法教程
Jul 21 Javascript
JS实现简单短信验证码界面
Aug 07 Javascript
VUE前端cookie简单操作
Oct 17 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
Feb 27 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
layui table数据修改的回显方法
Sep 04 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
简单的PHP多图上传小程序代码
2011/07/17 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
基于python爬虫数据处理(详解)
2017/06/10 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
python 获取图片分辨率的方法
2019/01/08 Python
对Python之gzip文件读写的方法详解
2019/02/08 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
SQL中where和having的区别
2012/06/17 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
校庆筹备方案
2014/03/30 职场文书
初三学生个人自我评定
2014/04/06 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
个人工作表现自我评价
2015/03/06 职场文书
Pandas自定义选项option设置
2021/07/25 Python
使用CSS设置滚动条样式
2022/01/18 HTML / CSS