angularfile-uploadangular2-http

File Upload In Angular?


I know this is very a general question but I am failing to upload a file in Angular 2. I have tried

1) http://valor-software.com/ng2-file-upload/ and

2) http://ng2-uploader.com/home

...but failed. Has anyone uploaded a file in Angular? What method did you use? How to do so? If any sample code or demo link is provided it will be really appreciated.


Solution

  • Angular 2 provides good support for uploading files. No third party library is required.

    <input type="file" (change)="fileChange($event)" placeholder="Upload file" accept=".pdf,.doc,.docx">
    
    fileChange(event) {
        let fileList: FileList = event.target.files;
    
        if (fileList.length < 1) {
          return;
        }
        
        let file: File = fileList[0];
        let formData:FormData = new FormData();
        formData.append('uploadFile', file, file.name)
        
        let headers = new Headers();
        /** In Angular 5, including the header Content-Type can invalidate your request */
        headers.append('Content-Type', 'multipart/form-data');
        headers.append('Accept', 'application/json');
    
        let options = new RequestOptions({ headers: headers });
    
        this.http.post(`${this.apiEndPoint}`, formData, options)
            .map(res => res.json())
            .catch(error => Observable.throw(error))
            .subscribe(
                data => console.log('success'),
                error => console.log(error)
            );
    }
    

    using @angular/core": "~2.0.0" and @angular/http: "~2.0.0"