ckeditor5 自定义上传适配器 上传失败没有清除上传失败的文件

新手上路,请多包涵

我使用自定义的ckeditor5的自定义上传适配器,能正常上传,但是没有使用官方的适配器那样,在失败的时候清除上传失败的文件,而且我用自己的适配器,失败后,编辑框不能编辑

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

    upload() {
      return new Promise((resolve, reject) => {
        // let size = this.loader.file.size;
        // if (size / 1024 > 2048) {
        //   reject("图片不能大于2M");
        // }
        const data = new FormData();
        const config = {
          headers: {'content-type': 'multipart/form-data'}
        };
        data.append('imageFile', this.loader.file);
        axios.post('xxxx', data, config).then(res => {
          if (res) {
            if (res.data.code == 200) {
              resolve({
                default: res.data.data
              });
            } else {
              reject(res.data.msg);
            }
          } else {
            reject();
          }
        }).catch(error => {
          console.log("33333");
          console.log(error);
          reject(error)
        });
      }).catch(error => {
        console.log(error);
      });
    }

    abort() {
    }
  }
阅读 2.5k
1 个回答

我定义了一个oldValue放修改前的值,失败后set这个oldValue

class MyUploadAdapter {
          constructor(loader) {
            self.loader = loader;
            self.oldValue = self.editor.getData();
          }

          upload() {
            return self.loader.file.then(file => new Promise((resolve, reject) => {
              let size = file.size;
              let type = file.type;
              let isImg = self.accepts.indexOf(type) != -1 ? true : false;~~~~
              if (isImg && size / 1024 > 1024) {
                self.$message({
                  message: "图片不能大于1M"
                });
                self.editor.setData(self.oldValue);
                return false;
              }
              const data = new FormData();
              data.append("imageFile", file);
              self.$http.post("/editor/uploadImg", data).then(res => {
                if (res) {
                  if (res.data.code == 200) {
                    resolve({
                      default: res.data.data
                    });
                  } else {
                    self.$message({
                      message: res.data.msg
                    });
                    self.editor.setData(self.oldValue);
                  }
                } else {
                  self.$message({
                    message: "can not upload file: " + file.name
                  });
                  self.editor.setData(self.oldValue);
                }
              });
            }).catch(error => {
              console.log(error);
            }))
          }

          abort() {
          }
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题