tinymce 多图上传,上传文件,上传视频,单图上传
参考材料
http://tinymce.ax-z.cn/more-plugins/axupimgs.php 多图上传
https://www.tiny.cloud/docs/demo/full-featured/ 文档
引入插件
多图上传插件下载地址.
插件需要在plugins里面配置,toolbar使用,然后就可以显示在编辑器上。
单图上传,文件上传,图片上传
file_picker_types 配置显示本地上传按钮。配置项:image->单图上传 media->视频上传 file->链接上传,可上传附件
本地上传按钮接口需要file_picker_callback回调参数有callback, value, meta,如果上传接口不同可根据不同filetype判断
//配置项
file_picker_callback: function(callback, value, meta) {
let input = document.createElement('input'); //创建一个隐藏的input
input.setAttribute('type', 'file');
// let that = this;
input.onchange = function() {
let file = this.files[0]; //选取第一个文件
// console.log(file)
_this.uploadImg(file, function(res) {
callback(res)
}); // 上传视频拿到url
}
//触发点击
input.click();
}
// 上传方法
uploadImg(file, callback) {
//vue loading 上传需要时间,可加一个loading状态,
let loading = this.$loading()
// console.log(token,file,type,)
let that = this
let content = file
let formData = new FormData();
formData.append('file', content);
this.$http.post(window.SITE_CONFIG.ediUpload, formData, {
contentType: false,
processData: false,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then((response) => {
var res = response.data;
if (res.code == 0) {
//上传成功loading关闭,上传地址显示在input
loading.close()
callback(window.SITE_CONFIG.imgIP + res.filePath)
}
})
},
images_upload_handler单图上传的回调,采用的接口上传
多图上传
将下载的axupimgs放在项目目录,
如果报npm i axupimgs 因为插件里面没有index.js创建index.js 即可,代码如下
// Exports the "autosave" plugin for usage with module loaders
// Usage:
// CommonJS:
// require('tinymce/plugins/autosave')
// ES2015:
// import 'tinymce/plugins/autosave'
require('./plugin.js');
现在引入应该可以看到多图上传的插件了。但是点击打开弹框无法找到upfiles.html,我使用的是renren-fast-vue,将axupimgs里面的upfiles.html,loading.gif放在static目录,然后再axupimgs里面plugin.js修改地址,如下图:
现在多图上传就可以使用。因为基于单图上传的,所以单图上传的上传方法需要写好。