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