Как загрузить изображения, добавленные в ckEditor, используя AngularFireStorage и AngularFireUploadTask? - PullRequest
0 голосов
/ 05 мая 2019

Я использую ckEditor для редактирования контента в приложении Angular.Для загрузки изображений в ClouFirestore, я написал адаптер загрузки (ссылка: StackOverflowAlanObject , как показано ниже,

import { Injectable, EventEmitter } from '@angular/core';
import {AngularFirestore, Reference} from  "angularfire2/firestore";
import { AngularFireUploadTask, AngularFireStorage } from 'angularfire2/storage';
import { Observable, pipe } from 'rxjs';


@Injectable()

export class CkUploadAdapter {


    task: AngularFireUploadTask;

    public percentage: Observable<number>;
    public snapshot: Observable<any>;
    getURL = new EventEmitter<string>();
    isHovering: boolean;

    loader;  // your adapter communicates to CKEditor through this
    url;

    constructor(loader, url, private storage?: AngularFireStorage, private db?: AngularFirestore) {
      this.loader = loader;   
      this.url = url;
      console.log('Upload Adapter Constructor', this.loader, this.url);
    }

upload() {

      this.loader.file.then( file => {
        this.path = this.url+`/${new Date().getTime()}_${file.name}`;
        return new Promise( ( resolve, reject ) => {
        this.storage.upload(this.path, file.name, {customMetadata: this.customMetadata});
      });
      }  
abort() {
      console.log('UploadAdapter abort');
    }
  }

В методе upload () в строке this.storage.upload (path, this.loader.file, {customMetadata: customMetadata}), браузер выводит предупреждение «Не удается прочитать загрузку свойства неопределенного». Ошибка генерируется zone.js. AngularFireStorage на консоли также показывает неопределенное.

Внутри класса компонентов я использую приведенный ниже код для установки адаптера загрузки для ckEditor.

ckUploadAdapterPlugin(ckEditor) {
    ckEditor.plugins.get('FileRepository').createUploadAdapter = (loader) => {
      return new CkUploadAdapter(loader, '/test',  ckEditor.t);
    };
  }

Есть идеи, что здесь не так? Или мой подход неверен? Спасибо за ваши предложения!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...