如何使用ng2-file-upload返回响应

Tan*_*hah 10 ng2-file-upload angular

我在角度4使用ng2-file-upload.有没有办法从服务器返回自定义数据?我们如何在ts文件中访问它?

kar*_*ser 27

您应该使用onloader onSuccessItem和onErrorItem回调:

import { Component } from '@angular/core';
import {FileUploader, FileItem, ParsedResponseHeaders} from "ng2-file-upload";

@Component({
    selector: 'upload-file',
    template: `
    <input type="file" ng2FileSelect [uploader]="uploader">    
    `,
})
export class UploadFileComponent {
    uploader:FileUploader;
    ngOnInit(): void {
        this.uploader = new FileUploader({
            url: 'http://url.to/upload',
            headers: [{name:'Accept', value:'application/json'}],
            autoUpload: true,
        });
        this.uploader.onErrorItem = (item, response, status, headers) => this.onErrorItem(item, response, status, headers);
        this.uploader.onSuccessItem = (item, response, status, headers) => this.onSuccessItem(item, response, status, headers);
    }

    onSuccessItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {
        let data = JSON.parse(response); //success server response
    }

    onErrorItem(item: FileItem, response: string, status: number, headers: ParsedResponseHeaders): any {
        let error = JSON.parse(response); //error server response
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @TanviShah如果你发现它是正确的,请接受这个答案 (7认同)
  • 这有效,但我还有一个问题,当用户第二次上传某个文件时如何处理,在第一次 onSuccessItem 函数不再调用之后? (3认同)