I am using ng2-file-upload in angular 4. Is there any way to return custom data from server? How would we access it in ts file?
Asked
Active
Viewed 1.2k times
1 Answers
38
You should be using uploader onSuccessItem and onErrorItem callbacks:
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
}
}

karser
- 1,625
- 2
- 20
- 24
-
8@TanviShah Please accept this answer if you find it correct – karser Apr 20 '17 at 14:19
-
4This works, but i have one more question, how to handle when user second time upload some file, after first time onSuccessItem function never calls again ? – Sahbaz Aug 23 '17 at 14:45