一个简单不报错的summernote 图片上传案例


Posted in Javascript onJuly 11, 2016

一个比较完整的summernote上传图片的案例,没有后台(上传图片网上案例太多),只有前端js.修正了网上提供的,但是有bug的代码。

这个例子,js保证不报错。亲测可用

<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE html >
<html>
<head>


<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.1/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.1/js/bootstrap.min.js"></script>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet" type="text/css"><!--必须-->
<link href="summernote-master/dist/summernote.css" rel="stylesheet" type="text/css"><!--必须-->
<script src="summernote-master/dist/summernote.js"></script><!--必须-->
<script src="summernote-master/lang/summernote-zh-CN.js"></script>


<title>bootstrap-markdown</title>
<style>
.note-alarm {
float: right;
margin-top: 10px;
margin-right: 10px;
}
</style>
</head>
<body>
 <div id="summernote"></div>
<script type="text/javascript">

$(document).ready(function() {
  
/* function sendFile(file, editor,welEditable) {
 console.log("file="+file);
 console.log("editor="+editor);
 console.log("welEditable="+welEditable);
  data = new FormData();
  data.append("blog_image[image]", file);
  $.ajax({
   url: 'blog_images.jsp',
   data: data,
   cache: false,
   contentType: false,
   processData: false,
   type: 'POST',
   success: function(data){
    editor.insertImage(welEditable, data.url);
   }
  });
 }
*/
 $('#summernote').summernote({
  height: 300, /*高さを指定*/
  lang: 'zh-CN', // default: 'en-US'
 focus:true,
  toolbar: [
   ['style', ['bold', 'italic', 'underline', 'clear']],
   ['fontsize', ['fontsize']],
   ['color', ['color']],
   ['para', ['ul', 'ol', 'paragraph']],
   ['height', ['height']],
   ['insert', ['picture', 'video']]
  ],
 /* image: {
     
     selectFromFiles: '选择文件'
    
    }, */
  /*onImageUpload: function(files, editor, welEditable) {
    sendFile(files[0], editor,welEditable);
  }*/
    onImageUpload: function(files, editor, $editable) {
  sendFile(files[0],editor,$editable);
  }
  
  
 });
});


function sendFile(file, editor, $editable){
$(".note-toolbar.btn-toolbar").append('正在上传图片');
var filename = false;
try{
filename = file['name'];
alert(filename);
} catch(e){filename = false;}
if(!filename){$(".note-alarm").remove();}
//以上防止在图片在编辑器内拖拽引发第二次上传导致的提示错误
var ext = filename.substr(filename.lastIndexOf("."));
ext = ext.toUpperCase();
var timestamp = new Date().getTime();
var name = timestamp+"_"+$("#summernote").attr('aid')+ext;
//name是文件名,自己随意定义,aid是我自己增加的属性用于区分文件用户
data = new FormData();
data.append("file", file);
data.append("key",name);
data.append("token",$("#summernote").attr('token'));

$.ajax({
data: data,
type: "POST",
url: "/summernote/fileupload", //图片上传出来的url,返回的是图片上传后的路径,http格式
contentType: "json",
cache: false,
processData: false,
success: function(data) {
//data是返回的hash,key之类的值,key是定义的文件名
alert(data);
//把图片放到编辑框中。editor.insertImage 是参数,写死。后面的http是网上的图片资源路径。
//网上很多就是这一步出错。
$('#summernote').summernote('editor.insertImage', "http://res.cloudinary.com/demo/image/upload/butterfly.jpg");

$(".note-alarm").html("上传成功,请等待加载");
setTimeout(function(){$(".note-alarm").remove();},3000);
},
error:function(){
$(".note-alarm").html("上传失败");
setTimeout(function(){$(".note-alarm").remove();},3000);
}
});
}

</script>
</body>
</html>

以上这篇一个简单不报错的summernote 图片上传案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js表数据排序 sort table data
Feb 18 Javascript
Array.prototype.slice.apply的使用方法
Mar 17 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
jQuery事件用法详解
Oct 06 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
利用js的闭包原理做对象封装及调用方法
Apr 07 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
May 12 Javascript
Vue Spa切换页面时更改标题的实例代码
Jul 15 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
Sep 16 Javascript
基于vue写一个全局Message组件的实现
Aug 15 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 Javascript
Bootstrap实现弹性搜索框
Jul 11 #Javascript
Summernote实现图片上传功能的简单方法
Jul 11 #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
You might like
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
判断对象是否Window的实现代码
2012/01/10 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
如何实现双向绑定mvvm的原理实现
2019/05/28 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
python取均匀不重复的随机数方式
2019/11/27 Python
python实现交并比IOU教程
2020/04/16 Python
python mysql中in参数化说明
2020/06/05 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
人事行政主管岗位职责
2013/12/22 职场文书
学生党支部先进事迹
2014/02/04 职场文书
优秀团队获奖感言
2014/02/19 职场文书
成都人事代理协议书
2014/10/25 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
关于 Python json中load和loads区别
2021/11/07 Python