在我的编辑器中管理上传文件的最佳方法?

Kam*_*dev 18 php ckeditor laravel vue.js

我正在开发一个社交博客,其中有一个用javascript构建的编辑器,用于创建用户的博客.我最大的问题之一是上传文件及其限制.现在用于自动保存用户帖子,我将同时上传的图像存储到服务器,但问题是当用户从编辑器中删除图像时,因为:

  • 请求数量可能太多(即使有机器人)
  • 在Ckeditor我有一个上传程序,但没有从服务器删除它(或至少我不知道如何)
  • 最后是自动保存的好主意(?)

我的编辑器是ckeditor5的自定义版本,为了上传文件,我使用了一个uploadadapter,如:

export default class UploadAdapter {
    constructor(loader, article) {
        this.loader = loader;
        this.article = article;
    }
    upload() {
        return new Promise((resolve, reject) => {
            let image = new FormData();
            let url = '/articles/imageUpload';
            image.append('upload', this.loader.file);
            image.append('token', this.article.token);

            axios.post(url, image)
                .then(response => {
                    console.log(response);
                    if (response.data.uploaded) {
                        resolve({
                            default: response.data.url,
                        });
                    }
                    else {
                        reject(response.data.error.message);
                    }
                }).catch(error => {
                console.log(error);
            });
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

zac*_*lil 1

我使用下面的方法将图像嵌入为 base64,而不是上传它们

class UploadAdapter {
   constructor( loader ) {
      this.loader = loader;
   }

   upload() {
      return this.loader.file
            .then( file => new Promise( ( resolve, reject ) => {
                  var myReader= new FileReader();
                  myReader.onloadend = (e) => {
                     resolve({ default: myReader.result });
                  }

                  myReader.readAsDataURL(file);
            } ) );
   };
}
Run Code Online (Sandbox Code Playgroud)