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 相关文章推荐
如何用js控制frame的隐藏或显示的解决办法
Mar 20 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
Apr 16 Javascript
jQuery将多条数据插入模态框的示例代码
Sep 25 Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 Javascript
js+cookies实现悬浮购物车的方法
May 25 Javascript
JS简单实现多级Select联动菜单效果代码
Sep 06 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
基于JavaScript实现拖动滑块效果
Feb 16 Javascript
jQuery Plupload上传插件的使用
Apr 19 jQuery
js推箱子小游戏步骤代码解析
Jan 10 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
javascript关于“时间”的一次探索
Jul 24 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
php获取汉字首字母的函数
2013/11/07 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
Python中的__slots__示例详解
2017/07/06 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
Linux下python3.6.1环境配置教程
2018/09/26 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Python作用域与名字空间原理详解
2020/03/21 Python
如何提高python 中for循环的效率
2020/04/15 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
主管会计岗位责任制
2014/02/10 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python