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学习笔记之基础语法
Jan 22 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
js canvas仿支付宝芝麻信用分仪表盘
Nov 16 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
vue构建动态表单的方法示例
Sep 22 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
Jan 04 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 Javascript
对Layer UI 模块化的用法详解
Sep 26 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
Jul 26 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 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实现验证码功能
2006/10/09 PHP
php动态生成函数示例
2014/03/21 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
centos下更新Python版本的步骤
2013/02/12 Python
Python的time模块中的常用方法整理
2015/06/18 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
利用Python小工具实现3秒钟将视频转换为音频
2019/10/29 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
苹果台湾官网:Apple台湾
2019/01/05 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
转党组织关系介绍信
2014/01/08 职场文书
主题团日活动总结
2014/06/25 职场文书
关于美容院的活动方案
2014/08/14 职场文书
农村老人去世追悼词
2015/06/23 职场文书