Web端Tinymce编辑器的多图上传优化
Tinymce编辑器是一个流行的文本编辑器,但在进行多图上传时,它默认每张图片都会单独调用一次上传接口。这对于有限制接口调用频率的业务场景来说效率较低。
为了解决这个问题,一种方法是使用Tinymce编辑器提供的images_upload_handler参数。这个参数允许你指定一个自定义的上传处理函数,从而控制上传行为。
具体实现步骤如下:
- 定义一个uploadImages函数,用于处理文件选择后进行上传。该函数接收文件Blob对象作为参数,并且返回一个promise对象。
- 定义一个doUpload函数,用于执行实际的上传操作。该函数使用FormData对象将文件发送到后端服务器,并处理上传成功后的响应。
- 在images_upload_handler参数中传入uploadImages函数。这样,当用户选择图片时,Tinymce编辑器会自动调用uploadImages函数进行上传。
- 手动调用doUpload函数来触发批量上传操作。这可以根据需要在特定事件或按钮点击时触发。
- 在doUpload函数中,将要上传的文件列表和对应的uploadImages函数返回的Promise对象数组传入。这样,在上传成功后,可以通过下标找到对应的Promise对象并调用其resolve方法,将上传成功的地址传回给Tinymce编辑器。
通过采用这种批量上传机制,可以一次调用接口上传多张图片,从而提高效率并降低接口调用的频率。