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

  • 请求的数量可能太多(即使有很多请求)
  • In Ckeditor I have a procedure for uploading, but there are not for deleting it from server (or at least I don't know how)
  • 最后,这是自动储蓄的好主意(?)

My editor is a customized version of ckeditor5, and for uploading files, I use an uploadadapter like :

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);
            });
        });
    }
}

推荐答案

我使用下面的代码将图片嵌入为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);
            } ) );
   };
}

Laravel相关问答推荐

Laravel:如何从不断更新的Controller中分页数据

无法在 Laravel 项目中安装 @vitejs/plugin-vue

Laravel Debugbar 中的 Laravel api routes路由

仅针对字母的 laravel 验证规则

为什么 Laravel 5 会自动更新我的日期字段?

Laravel 4:处理种子中的关系

使用 Eloquent (Laravel) 在 Group By 之前排序

在集合 laravel 中使用查询范围

在 VSCode 上调试 Laravel 应用程序

这个上下文的流程应该是怎样的? (根据 Select 的付款方式,将处理付款的代码放在哪里?)

如何更改 ember-cli 中的 dist 文件夹路径?

如何从不是控制器方法的方法发送响应?

如何在 Laravel 查询中使用多个 OR、AND 条件

Laravel - 更新时禁用更新时间

Blade 中的条件扩展

Select,where JSON 包含数组

Laravel 5 - 从控制器级别的所有请求对象中删除参数

Laravel 5 - 跳过迁移

Laravel:array_merge():参数#2不是数组错误

使用 Laravel Mix 合并多个文件