编辑器图片上传 linux,summernote 富文本编辑器上传本地图片
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 富文本编辑器上传本地图片相关推荐
- bootstrap summernote富文本编辑器图片上传干货分享
个人技术网站 欢迎关注 今天做后台的时候需要一个富文本编辑器组件,由于项目使用的是bootstrap,所以毫不犹豫的用上了summernote富文本编辑器.文档各大大牛已经整理出来了 但是图片上传到 ...
- summernote富文本编辑器的自定义附件上传:不限于图片类型
summernote富文本编辑器的自定义附件上传 前言 一.自定义上传附件按钮和弹窗 二.结合PHP上传文件进行后端处理 三.用jq模拟点击添加链接方式去处理上传附件 前言 summernote的上传 ...
- summernote富文本编辑器基本使用
summernote富文本编辑器的基本使用 一.简介 二.下载: 三.基本使用: 1.引入js/css 2.建立一个div 3.用 js初始化操作 4.上传图片的Controller 5.过去编辑器内 ...
- Django使用summernote富文本编辑器,完整前后端
今天项目中要使用summernote富文本编辑器,由于网上的基本都是在说用这个编辑器上传图片的,所以我就整理了一下上传图片和文本的代码,完整前后端. 这里我准备了一个demo,需要的可以直接复制 &l ...
- Django中summernote富文本编辑器完整前后端
summernote富文本编辑器,由于网上的基本都是在说用这个编辑器上传图片的,所以我就整理了一下上传图片和文本的代码,完整前后端. 这里我准备了一个demo,需要的可以直接复制 Summernote ...
- summernote富文本编辑器的基本使用
summernote富文本编辑器的基本使用(一) 本文主要是跟官网的一些翻译,也锻炼下英语水平.原英文网址http://summernote.org/getting-started/ 基础API 初始 ...
- summernote富文本编辑器
一.文档 二.使用 四.他山之石 一.文档 官网地址 https://summernote.org/ github https://github.com/summernote/summernote 选 ...
- vue+summernote富文本编辑器
vue+summernote富文本编辑器 最近项目中有新增编辑报告的需求需使用富文本编辑器,在网上找了几篇相关博客,于是选择了summernote ,summernote是一款轻量级的富文本编辑器,比 ...
- 前端 summernote富文本编辑器 点击文章预览的功能实现
一般如果要在网页项目中使用文章编辑器的话,都会考虑summernote富文本编辑器,毕竟使用简便,而且是开源的,一般的用法就是: <div class="form-group" ...
最新文章
- linux perl telnet安装,linux @ Net :: Telnet和vt-100终端的Perl问题
- python判断二叉树是否为平衡二叉树
- 探索可解释及稳定性,AI与博弈,自适应推理——“智源论坛:机器学习青年学者报告会”要点总结
- C#语言实现定时开启或禁用网卡小程序
- 从壹开始 [Admin] 之五 ║ 实现『按钮』级别权限配置
- 从运维角度浅谈MySQL数据库优化,中小企业DBA必会
- C++开发环境如何设置呢?
- tkinter教程——toplevel
- 第7章 文件和数据格式化
- python no such file or directory_python No such file or Directory
- php水印文字方向,ppt文本框文字方向为所有文字旋转的设置方法
- Java基础-面向对象-封装继承多态
- 北京五险一金介绍及公积金领取办法
- 【JavaEE】网络编程基础之Socket套接字
- 银行HR讲述实习生转正故事:寒门真的再难出贵子
- webug 4.0 第四关 POST注入
- electron打包后在win7上打开异常KERNEL32.dll
- oracle表连接分析
- Java集合概述、ArrayList的使用
- 数据结构乐智教学百度云_巧虎《乐智小天地》早教动画片视频全集资源百度云网盘下载...
热门文章
- asp写入mysql拿shell_mysql误删数据快速恢复
- 10无法勾选隐藏的项目_3ds max一直卡在启动页面无法进入
- MLOG_CHECKPOINT缺失下紧急数据恢复
- 下载丨 MySQL运维管理+编程开发大全
- DBA跳槽应该去大公司还是小公司?99%的人这样说...
- 当MySQL执行XA事务时遭遇崩溃,且看华为云如何保障数据一致性
- 有了这三个神器工具集,应用开发想怎么玩就怎么玩
- 如何让知识图谱告诉你“故障根因”
- 【华为云技术分享】如何使用pyCharm与ModelArts公有云服务联动开发,快速且充分地利用云端GPU计算资源
- 3分钟创建一个游戏类容器应用【华为云分享】