4 changed files with 112 additions and 18 deletions
@ -0,0 +1,88 @@ |
|||||
|
// Any plugins you want to setting has to be imported
|
||||
|
// Detail plugins list see https://www.tinymce.com/docs/plugins/
|
||||
|
// Custom builds see https://www.tinymce.com/download/custom-builds/
|
||||
|
// colorpicker/contextmenu/textcolor plugin is now built in to the core editor, please remove it from your editor configuration
|
||||
|
|
||||
|
import setting from '@/config/setting'; |
||||
|
let token = localStorage.getItem('access_token') |
||||
|
|
||||
|
|
||||
|
const GLOB_UPLOAD_URL = setting.uploadImageUrl+'?upload_type=img' |
||||
|
// @ts-ignore
|
||||
|
export const file_picker_callback = (callback, value, meta) => { |
||||
|
// 文件分类
|
||||
|
var filetype = '.pdf, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .mp3, .mp4' |
||||
|
// 后端接收上传文件的地址
|
||||
|
var upurl = GLOB_UPLOAD_URL |
||||
|
// 为不同插件指定文件类型及后端地址
|
||||
|
switch (meta.filetype) { |
||||
|
case 'image': |
||||
|
filetype = '.jpg, .jpeg, .png, .gif' |
||||
|
break |
||||
|
case 'media': |
||||
|
filetype = '.mp3, .mp4' |
||||
|
break |
||||
|
case 'file': |
||||
|
default: |
||||
|
} |
||||
|
// 模拟出一个input用于添加本地文件
|
||||
|
var input = document.createElement('input') |
||||
|
input.setAttribute('type', 'file') |
||||
|
input.setAttribute('accept', filetype) |
||||
|
input.click() |
||||
|
input.onchange = () => { |
||||
|
// @ts-ignore
|
||||
|
var file = this.files[0] |
||||
|
|
||||
|
var xhr, formData |
||||
|
xhr = new XMLHttpRequest() |
||||
|
xhr.withCredentials = false |
||||
|
xhr.open('POST', upurl) |
||||
|
xhr.onload = () => { |
||||
|
var json |
||||
|
if (xhr.status !== 200) { |
||||
|
// failure('HTTP Error: ' + xhr.status)
|
||||
|
return |
||||
|
} |
||||
|
json = JSON.parse(xhr.responseText) |
||||
|
if (!json || json.code !== '200') { |
||||
|
// failure('Invalid JSON: ' + xhr.responseText)
|
||||
|
return |
||||
|
} |
||||
|
callback(json.message, { text: file.name }) |
||||
|
} |
||||
|
formData = new FormData() |
||||
|
formData.append('file', file, file.name) |
||||
|
formData.append('token', token) |
||||
|
xhr.send(formData) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
export const images_upload_handler = (blobInfo, succFun, failFun) => { |
||||
|
var xhr, formData |
||||
|
var file = blobInfo.blob() // 转化为易于理解的file对象
|
||||
|
// console.log(file)
|
||||
|
xhr = new XMLHttpRequest() |
||||
|
xhr.withCredentials = false |
||||
|
xhr.open('POST', GLOB_UPLOAD_URL) |
||||
|
xhr.onload = () => { |
||||
|
var json |
||||
|
if (xhr.status !== 200) { |
||||
|
failFun('HTTP Error: ' + xhr.status) |
||||
|
return |
||||
|
} |
||||
|
json = JSON.parse(xhr.responseText) |
||||
|
console.log(xhr.responseText) |
||||
|
|
||||
|
if (!json || json.code !== 0) { |
||||
|
// failFun('Invalid JSON: ' + xhr.responseText)
|
||||
|
return |
||||
|
} |
||||
|
console.log(json.url) |
||||
|
succFun(json.url) |
||||
|
} |
||||
|
formData = new FormData() |
||||
|
formData.append('file', file, file.name) // 此处与源文档不一样
|
||||
|
formData.append('token', token) |
||||
|
xhr.send(formData) |
||||
|
} |
||||
Loading…
Reference in new issue