Search code examples
angularform-data

angular form data won't append


I am trying to upload files with angular 6. However, I can't seem to append my formData(). Alittle help. Thank you.

home.component.ts

export class HomeComponent implements OnInit {
  selectedFile: File = null;
constructor(
private _route: ActivatedRoute,
private _router: Router,
private _postService: PostService
) { }

ngOnInit() {}


onFileChanged(event) {
this.selectedFile = event.target.files[0]}

postImage() {
const uploadData = new FormData();
uploadData.append('myFile', this.selectedFile, this.selectedFile.name);
console.log(uploadData)
this._postService.postImage(uploadData)}}

home.component.html

<input style="display: none" type="file (change)="onFileChanged($event)" #fileInput>
<button (click)="fileInput.click()">Select File</button>
<button (click)="postImage()">Upload!</button>

Solution

  • Try something like this:

    DEMO

    The file is already appended in formdata but You can not directly inspect form data :

    onFileChanged(event) {
    
        let formData = new FormData();
        this.selectedFiles = event.target.files;
        this.currentFileUpload = this.selectedFiles.item(0);
    
    
        console.log(this.currentFileUpload)
        formData.append('file', this.currentFileUpload);
    
        formData.append('labelName', 'test');
        formData.append('formPart', 'test');
        console.log(JSON.stringify(formData))
    
       formData.forEach((value,key) => {
          console.log(key+" "+value)
        });
      }