技术标签: wangEditor vue 七牛云图片上传
wangEditor —— 轻量级 web 富文本编辑器,配置方便,使用简单。支持 IE10+ 浏览器。
npm安装:
$ npm install wangeditor --save-dev
引入依赖包:
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="./libs/plupload.full.min.js"></script>
<script type="text/javascript" src="./libs/qiniu.js"></script>
<template>
<div class="editor">
<div ref="editor"></div>
</div>
</template>
<script>
import Editor from 'wangeditor'
import api from '@/request/api'
export default {
name: 'Editor',
props: {
editorContent: {
// 富文本内容
type: String,
default: ''
}
},
data () {
return {
uptoken: null
}
},
mounted () {
var editor = new Editor(this.$refs.editor)
// onchange事件
editor.customConfig.onchange = (html) => {
console.log('onchange', html)
this.$emit('changeContent', html)
}
// 自定义菜单配置
editor.customConfig.menus = [
'head', // 标题
'bold', // 粗体
'fontSize', // 字号
'fontName', // 字体
'italic', // 斜体
'underline', // 下划线
'strikeThrough', // 删除线
'foreColor', // 文字颜色
'backColor', // 背景颜色
'link', // 插入链接
'list', // 列表
'justify', // 对齐方式
'quote', // 引用
'emoticon', // 表情
'image', // 插入图片
'table', // 表格
'video', // 插入视频
'code', // 插入代码
'undo', // 撤销
'redo' // 重复
]
// 自定义字体
editor.customConfig.fontNames = [
'宋体',
'微软雅黑',
'Arial',
'Tahoma',
'Verdana'
]
// 使用 base64 保存图片
editor.customConfig.uploadImgShowBase64 = false
// 隐藏“网络图片”tab
editor.customConfig.showLinkImg = false
// 允许上传到七牛云存储
editor.customConfig.qiniu = true
editor.create()
// 编辑富文本
if (this.editorContent) {
editor.txt.html(this.editorContent)
}
// 初始化
this.uploadInit(editor)
},
methods: {
uploadInit (editor) {
// 获取相关 DOM 节点的 ID
var btnId = editor.imgMenuId
var containerId = editor.toolbarElemId
var textElemId = editor.textElemId
// 创建上传对象
api.upload().then(res => {
var uploader = window.Qiniu.uploader({
runtimes: 'html5,flash,html4', //上传模式,依次退化
browse_button: btnId, //上传选择的点选按钮,**必需**
uptoken: res.data.data,
unique_names: true,
domain: 'http://phx1pmugn.bkt.clouddn.com/', //bucket 域名,下载资源时用到,**必需**
container: containerId, //上传区域DOM ID,默认是browser_button的父元素,
max_file_size: '100mb', //最大文件体积限制
filters: {
mime_types: [
//只允许上传图片文件 (注意,extensions中,逗号后面不要加空格)
{
title: "图片文件", extensions: "jpg,gif,png,bmp" }
]
},
max_retries: 3, //上传失败最大重试次数
dragdrop: true, //开启可拖曳上传
drop_element: textElemId, //拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
chunk_size: '4mb', //分块上传时,每片的体积
auto_start: true, //选择文件后自动上传,若关闭需要自己绑定事件触发上传
init: {
'FileUploaded': function(up, file, info) {
var domain = up.getOption('domain')
var res = window.$.parseJSON(info)
var sourceLink = domain + res.key //获取上传成功后的文件的Url
// 插入图片到editor
editor.cmd.do('insertHtml', '<img src="' + sourceLink + '" style="max-width:100%;"/>')
}
}
})
})
}
}
}
</script>
<style lang="less">
.w-e-toolbar {
flex-wrap: wrap;
justify-content: space-between;
}
</style>
<style lang="less" scoped>
.editor {
width: 100%;
height: 100vh;
/* table 样式 */
table {
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
}
table td,
table th {
border-bottom: 1px solid #ccc;
border-right: 1px solid #ccc;
padding: 3px 5px;
}
table th {
border-bottom: 2px solid #ccc;
text-align: center;
}
/* blockquote 样式 */
blockquote {
display: block;
border-left: 8px solid #d0e5f2;
padding: 5px 10px;
margin: 10px 0;
line-height: 1.4;
font-size: 100%;
background-color: #f1f1f1;
}
/* code 样式 */
code {
display: inline-block;
*display: inline;
*zoom: 1;
background-color: #f1f1f1;
border-radius: 3px;
padding: 3px 5px;
margin: 0 3px;
}
pre code {
display: block;
}
/* ul ol 样式 */
ul, ol {
margin: 10px 0 10px 20px;
}
}
</style>
首先要通过接口获取七牛云存储的uptoken
https://up-z2.qbox.me/ 接口返回token无效,这时候要检查你的七牛云账号的设置
效果演示:
转载请注明出处 : https://blog.csdn.net/sinat_36127729/article/details/85061854
功能介绍好的编码习惯都应该为每一行代码做覆盖测试,但有些时候代码处理的是从网络上获取的内容,或者设备的返回,比如获取交换机路由器的运行结果,或者从网络上获取页面等等。这些动作要么需要联网,要么需要设备,但实际上我们只是想测试代码正确性而已,注重的是对返回的内容的处理而不必非要有实际设备。mock 模块就是在单元测试中模拟部分代码的模块,比如某个函数需要调用其他函数,这个时候我们可以模拟这个...
跑训练的时候,提示cuda不存在,nvidia-smi报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.装过nvidia 显卡驱动了,nvidia-smi报错,避免重装驱动的繁琐,找到以下解决方案:先查看自己之前安装的驱动版本ls /usr/src
如何修复Win10系统Steam磁盘写入错误呢?Steam是一个非常知名的游戏平台,用户可以在平台上购买、下载、安装游戏,大大方便了众多游戏玩家。最近有Win10系统小伙伴使用Steam时遇到了Steam磁盘写入错误的情况,那么怎么修复win10系统steam磁盘写入错误呢?因为造成steam磁盘写入错误的原因很多,所以这里会给大家详解的介绍五种可行的解决方法!希望大家喜欢!Win10系统修复St...
我这个是根据子集长度来排序的,按需求更改 let videos = res.data; var compare = funcvtion (obj1, obj2) { var val1 = obj1.videoUps.length; var val2 = obj2.videoUps.length; ...
此类错误的常见解决办法:1、是因为.java文件不在项目的src路径内,也就是说源代码未被eclipse编译,字节码不存在无法运行了在项目名上右键 -> Builder Path -> Configure Build Path -> 选择Source面板 再点Add Folder, 把源代码所在的包路径的上层目录加进来,而且如果你是把两个类写在一个文件里的话,你在右键选择Run ...
1.用C语言实现栈常用操作:(1)、初始化(2)、入栈(3)、出栈(4)、取栈顶元素(5)、获取栈中元素个数(6)、判空(7)、扩容(8)、销毁代码如下:#include"stack.h"#include<assert.h>#include<malloc.h>#include<stdio.h>//初始化void StackInit(Stack* ps){ assert(ps); ps->array = (DataType*)m
The Hardest Problem EverTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13590 Accepted Submission(s): 6212 Problem DescriptionJulius C...
原文:http://hi.baidu.com/mcu99/blog/item/389a6fde38f69950cdbf1a75.html在这篇文章(【09.03.25】Linux环境中dlopen函数的简单应用)中。实现了在UBUNTU LINUX环境下使用dlopen函数动态调用.so链接库。但是也提到了在Android下未能成功。由于Android也是使用linux内核,因此估计程序本身可能并
最近刚接手了个项目,在iOS11之前都没有问题,但是在iOS11上却出现了个别屏幕适配问题,其中包括:1、push进入下一个VC之后,导航栏在会往上移部分距离,大概20像素;2、VC中的tableView向下移动部分距离,以及cell直接的间隔会无故拉大;3、加载webView的时候会向下移动部分距离;4、放在导航栏上面的searchBar消失不见。虽然网上很多文章介绍解决的方法,但是我还是查阅了
直接上代码import face_recognitionimport numpy as npimport cv2def face_re(face1, face2): ''' 对比两张图片是否属于同一人 ''' face_encoding1 = [] is_face1 = face_recognition.face_encodings(face_recognition.load_image_file(face1)) if (len(is_face1) <= 0
PHP文件打包成zip,包含文件夹使用ZipArchive class开始先new一个$zip,$zip = new ZipArchive;然后把(此文件如果是文件夹这里循环)文件夹路径,和$zip,还有就是初始的文件夹了 3. 循环文件夹文件 4. 去掉文件夹中的.和.. 5. 再判断此路径还有文件夹,如果是文件夹,再次执行本函数 6. 如果不是加入文件完成后closedir()
前段时间跟着吴恩达大牛的视频学了深度学习,做了课后的作业“YOLO算法实现自动驾驶的车辆检测”。最近面试被问到YOLO算法的Anchor box是如何实现的,突然发现自己对YOLO算法还是不够深入了解,很感谢面试官的提问,让我发现了很多不足。下面就YOLO算法进行梳理。 参考博客: YOLO(You Only Look Once)算法详解 YOLO算法的优点: 1. YOLO的速度非常快。...