PHP前端开发

TinyMCE编辑器多图上传效率低怎么办?

百变鹏仔 1个月前 (12-15) #PHP
文章标签 多图

tinymce 编辑器多图上传批量处理

使用 tinymce 编辑器时,通过 axupimgs 插件实现多图上传,但插件每次只上传一张图片,导致接口调用频率过高。针对此问题,本文提供了批量上传图片的解决方案。

按照官方文档,我们可以使用 images_upload_handler 参数处理图片上传后的操作。传入图片的 blob 对象并返回一个 promise,resolve 后,将上传成功的地址传进去。

以下代码给出了具体实现方案:

关键在于将后端的批量上传响应与前端的 resolve 逐一对应起来。以下示例代码展示了完整实现:

const files = [];const tasks = [];function uploadImages (blob, progress) {  // 保存待上传文件  files.push(blob);  return new Promise(function (resolve) {    // 保存 Promise 的 resolve 方法    tasks.push(resolve);  })}function doUpload () {  const _files = files.slice();  const _tasks = tasks.slice();  files.length = 0;  tasks.length = 0;  const formData = new FormData();  _files.forEach((file, index) => formData.append(`files[${index}]`, file));  fetch('/image', {    method: 'post',    body: formData  }).then(resp => resp.json()).then(result => {    // 上传成功后的处理    _tasks.forEach((task, index) => {      task(result.uploaded[index]);    })  })}

通过此方案,可以批量将图片上传到后端,并有效控制接口调用频率。