summernote.js图片上传的使用
2020-10-04 本文已影响0人
最底层的技术渣
这是一个常用的富文本编辑器而已,特别注意(本地图片上传后,图片的宽度会固定,建议编辑一下,否则自适应时手机版会变成)
一、js部分
<script src="{{/Public}}/style/js/plugins/summernote/summernote-bs4.js"></script>
<script src="{{/Public}}/style/js/plugins/summernote/summernote-zh-CN.min.js"></script>
$(document).ready(function () {
$('.summernote').summernote({
height: 300,
lang: 'zh-CN', //如果开启中文,要导入中文插件
focus: true,
callbacks: {
//图片上传
onImageUpload: function (files, editor, $editable) {
sendFile(files[0], editor, $editable);
}
}
});
});
//上传图片
function sendFile(file, editor, $editable) {
var formdata = new FormData();
formdata.append("file", file);
$.ajax({
//图片上传出来的url,返回的是图片上传后的路径,http格式
url: "url",
type: "post",
data: formdata,
cache: false,
contentType: false,
processData: false,
dataType: "json",
success: function (result) {
//url:图片路径 filename:图片名称
$('.summernote').summernote('insertImage', result.img, 'img');
},
error: function () {
alert("上传失败");
}
});
}
二、php后端部分
/*发布文章图片上传 这个是上传控制器 因为 我把 上传img方法封装了 upimg*/
private function upload_img()
{
if ($_FILES) {
$result = $this->upimg($_FILES);
}
return json_encode([
'img' => "/" . $result,
***
]);
}
/*上传图片 这里是 上传到 public/news/img 中*/
private function upimg($files)
{
/*截取后缀*/
$suffix = substr($files['file']['name'], strrpos($files['file']['name'], '.'));
$arr = array('.jpg', '.png', '.jpeg', '.gif');
/*判断是否为图片*/
if (in_array($suffix, $arr)) {
//生成随机名
$str = date('dHis') . mt_rand(0, 9) . $suffix;
//上传文件到img文件
$path = date('Ym'); // 接收文件目录
//判断有没有这个文件
if (!file_exists('upload/' . $path)) {
mkdir("upload/$path", 0777, true);
}
$filename = 'upload/' . $path . '/' . $str;
//临时文件移动到文件夹内
move_uploaded_file($files['file']['tmp_name'], $filename);
return $filename;
} else {
return false;
}
}