jQuery version: 1.12.4

Bootstrap version: 3.3.7

summernote 是基于jQuery 和 Bootstrap 的轻量级富文本编辑器

所以在使用summernote之前必须先引入 jquery 和 Bootstrap

html 部分

javascript代码

let summer = $('#summernote');

summer.summernote({

callbacks: {

onImageUpload: function (files) {

sendFile(files);

}

}

});

/** * 发送图片文件给服务器端 */

function sendFile(files) {

let imageData = new FormData();

imageData.append("imageData", files[0]);

$.ajax({

url: '/create/uploads', // 图片上传url

type: 'POST',

data: imageData,

cache: false,

contentType: false,

processData: false,

dataType: 'json', // 以json的形式接收返回的数据

// 图片上传成功

success: function ($result) {

let imgNode = document.createElement("img");

imgNode.src = $result.img;

summer.summernote('insertNode', imgNode);

},

// 图片上传失败

error: function () {

console.log('图片上传失败');

}

});

}

php代码( laravel)

namespace App\Http\Controllers;

use App\Note;

use Illuminate\Http\Request;

class NotesController extends Controller {

// 上传图片

public function uploads(Request $request) {

// 接收数据

$file = $request->file('imageData');

// 判断是否上传成功

if (!$file->isValid() ) {

return json_encode(['status' => 0,'message' => '文件上传失败']);

}

// 获取文件扩展名

$ext = $file->getClientOriginalExtension();

// 判断文件类型是否允许

if (! in_array($ext,['jpg','png','gif'])) {

return json_encode(['status' => 0,'message' => '文件类型不允许']);

}

// 为避免一个文件夹中的文件过多和文件名重复,所以需要设置上传文件夹和文件名

$fileName = $this->setFilePath(_UPLOADS_.'/'.date('Y_m_d'),$ext);

// 上传文件并判断

if ( move_uploaded_file($file->getRealPath(),$fileName) ) {

return json_encode([

'status' => 1,

'message' => '文件上传成功',

'img' => $fileName

]);

}

}

/**

* 设置文件路径和文件名称

* @param string $path 文件要上传的目标文件夹

* @param string $ext 文件后缀名

* @return strint 返回完整的路径+文件名称

*/

public function setFilePath ($path,$ext) {

// 修正路径和文件后缀名

$path = rtrim($path,'/').'/';

$ext = '.'.trim($ext,'.');

// 设置文件名

if (! file_exists($path)) {

@mkdir($path);

}

// 设置文件名

do{

$fileName = time().mt_rand();

}while( file_exists($path.$fileName.$ext) );

return $path.$fileName.$ext;

}

}

编辑器图片上传 linux,summernote 富文本编辑器上传本地图片相关推荐

  1. bootstrap summernote富文本编辑器图片上传干货分享

    个人技术网站 欢迎关注 今天做后台的时候需要一个富文本编辑器组件,由于项目使用的是bootstrap,所以毫不犹豫的用上了summernote富文本编辑器.文档各大大牛已经整理出来了  但是图片上传到 ...

  2. summernote富文本编辑器的自定义附件上传:不限于图片类型

    summernote富文本编辑器的自定义附件上传 前言 一.自定义上传附件按钮和弹窗 二.结合PHP上传文件进行后端处理 三.用jq模拟点击添加链接方式去处理上传附件 前言 summernote的上传 ...

  3. summernote富文本编辑器基本使用

    summernote富文本编辑器的基本使用 一.简介 二.下载: 三.基本使用: 1.引入js/css 2.建立一个div 3.用 js初始化操作 4.上传图片的Controller 5.过去编辑器内 ...

  4. Django使用summernote富文本编辑器,完整前后端

    今天项目中要使用summernote富文本编辑器,由于网上的基本都是在说用这个编辑器上传图片的,所以我就整理了一下上传图片和文本的代码,完整前后端. 这里我准备了一个demo,需要的可以直接复制 &l ...

  5. Django中summernote富文本编辑器完整前后端

    summernote富文本编辑器,由于网上的基本都是在说用这个编辑器上传图片的,所以我就整理了一下上传图片和文本的代码,完整前后端. 这里我准备了一个demo,需要的可以直接复制 Summernote ...

  6. summernote富文本编辑器的基本使用

    summernote富文本编辑器的基本使用(一) 本文主要是跟官网的一些翻译,也锻炼下英语水平.原英文网址http://summernote.org/getting-started/ 基础API 初始 ...

  7. summernote富文本编辑器

    一.文档 二.使用 四.他山之石 一.文档 官网地址 https://summernote.org/ github https://github.com/summernote/summernote 选 ...

  8. vue+summernote富文本编辑器

    vue+summernote富文本编辑器 最近项目中有新增编辑报告的需求需使用富文本编辑器,在网上找了几篇相关博客,于是选择了summernote ,summernote是一款轻量级的富文本编辑器,比 ...

  9. 前端 summernote富文本编辑器 点击文章预览的功能实现

    一般如果要在网页项目中使用文章编辑器的话,都会考虑summernote富文本编辑器,毕竟使用简便,而且是开源的,一般的用法就是: <div class="form-group" ...

最新文章

  1. linux perl telnet安装,linux @ Net :: Telnet和vt-100终端的Perl问题
  2. python判断二叉树是否为平衡二叉树
  3. 探索可解释及稳定性,AI与博弈,自适应推理——“智源论坛:机器学习青年学者报告会”要点总结
  4. C#语言实现定时开启或禁用网卡小程序
  5. 从壹开始 [Admin] 之五 ║ 实现『按钮』级别权限配置
  6. 从运维角度浅谈MySQL数据库优化,中小企业DBA必会
  7. C++开发环境如何设置呢?
  8. tkinter教程——toplevel
  9. 第7章 文件和数据格式化
  10. python no such file or directory_python No such file or Directory
  11. php水印文字方向,ppt文本框文字方向为所有文字旋转的设置方法
  12. Java基础-面向对象-封装继承多态
  13. 北京五险一金介绍及公积金领取办法
  14. 【JavaEE】网络编程基础之Socket套接字
  15. 银行HR讲述实习生转正故事:寒门真的再难出贵子
  16. webug 4.0 第四关 POST注入
  17. electron打包后在win7上打开异常KERNEL32.dll
  18. oracle表连接分析
  19. Java集合概述、ArrayList的使用
  20. 数据结构乐智教学百度云_巧虎《乐智小天地》早教动画片视频全集资源百度云网盘下载...

热门文章

  1. asp写入mysql拿shell_mysql误删数据快速恢复
  2. 10无法勾选隐藏的项目_3ds max一直卡在启动页面无法进入
  3. MLOG_CHECKPOINT缺失下紧急数据恢复
  4. 下载丨 MySQL运维管理+编程开发大全
  5. DBA跳槽应该去大公司还是小公司?99%的人这样说...
  6. 当MySQL执行XA事务时遭遇崩溃,且看华为云如何保障数据一致性
  7. 有了这三个神器工具集,应用开发想怎么玩就怎么玩
  8. 如何让知识图谱告诉你“故障根因”
  9. 【华为云技术分享】如何使用pyCharm与ModelArts公有云服务联动开发,快速且充分地利用云端GPU计算资源
  10. 3分钟创建一个游戏类容器应用【华为云分享】