在Angular 2 +

时间:2019-03-15 16:04:30

标签: angular ng2-file-upload

因此,我尝试使用角度7 / ng2-file-upload 上传文件,但我无法做到这一点,
因为出现错误400(必须输入字段名称),并且问题是我找不到将(键名/字段名)添加到文件的方法。
这是邮递员的示例:
我使用Form-data,然后添加一个键名(imgfile),然后在value字段中浏览到该文件,当我单击上载时,它就像一个超级按钮一样工作。但是,例如,如果我将键名更改为ex:(imgs),我复制了角度7中出现的错误。
这是我的TS:

    uploader = new FileUploader({
      url: this.FULL_URL 
    }); 
    ngOnInit() { 
    const authHeader: Array<{
        name: string;
        value: string;
    }> = [];
    authHeader.push({ 
        name: 'Authorization', 
        value: `Bearer ${this.token}`
    });

    const uploadOptions = <FileUploaderOptions>{ headers: authHeader };

    this.uploader.setOptions(uploadOptions);

    this.uploader.onBuildItemForm = (fileItem: any, form: any) => {
        form.append('imgfile', fileItem);
     //here is where i think i should added the key name,,, but i could not 
      manage to make it work

    }; 

}  

这是我的html:

<input type="file" ng2FileSelect [uploader]="uploader">
<button (click)="uploader.uploadAll()">Upload </button>

2 个答案:

答案 0 :(得分:0)

根据github上的this讨论,我认为您需要从该方法返回一个对象。
试试这个:

this.uploader.onBuildItemForm = (fileItem: any, form: any) => {
    form.append('imgs', fileItem);
    return {fileItem, form};
}; 

答案 1 :(得分:0)

因此,在努力寻找解决方案之后,我终于找到了解决方案,在上载器中,我不得不添加 itemAlias

uploader = new FileUploader({
        url: this.FULL_URL,
        authToken: this.token`,
        itemAlias: 'imgFile'
    });