2017-12-02 5 views
0

Heyy guckt, ich habe ngx-uploader in angular2 verwendet, als Antwort sende ich den Dateinamen, der am Backend generiert wird. Die Antwort wird nur gesendet, wenn die Datei vollständig hochgeladen wurde. So wie könnte ich Upload-Prozess zu verfolgen, die von Ereignis-Emitter erfolgt, die wie folgt aussehen:EventEmitters Wie kann ich den Upload-Fortschritt verfolgen? Wertänderungen?

files: UploadFile[]; 
    uploadInput: EventEmitter<UploadInput>; 

     startUpload(): void { 
     const event: UploadInput = { 
      type: 'uploadFile', 
      url: 'http://localhost:3030/upload/quality-docs', 
      method: 'POST', 
      file: this.files[this.files.length - 1], 
     }; 


     this.uploadInput.emit(event); 
     } 

Innerhalb von event.file Prozentwert des Fortschritts ist, wie es ich höre/verfolgen. Also wenn es 100 ist, etwas zu tun (Wert des Namens als Antwort erhalten)?

Antwort

0

Nach einer Weile i richtigen Weg gefunden, dies zu tun .. in dem ‚Readme‘ docs gibt es Methode aufgerufen onUploadOutput (Ausgabe: UploadOutput): void {} in dort müssen Sie nur hinzufügen, eine andere if-Anweisung, die aussehen würde

0

Ich weiß, dass dies nicht die beste oder richtiger Weg ist, aber das ist, wie ich es gemacht Arbeit:

startUpload(): void { 
    this.uploaded = false; 
    const event: UploadInput = { 
     type: 'uploadFile', 
     url: 'http://localhost:3030/upload/quality-docs', 
     method: 'POST', 
     file: this.files[this.files.length - 1], 
    }; 

    this.uploadInput.emit(event); 
    this.repeat(event); 
    } 

    repeat(event) { 
    setTimeout(() => { 
     this.fileName = event.file.response.filename; 
     if (this.fileName == '' || this.fileName == undefined) { 
     this.repeat(event); 
     } 
     this.uploaded = true; 
    }, 200) 
    } 
Verwandte Themen