追加后FormData为空

时间:2018-08-02 09:49:44

标签: javascript angular ionic2 multipartform-data

我需要发送带有标题/标题的文件。

我的formData在添加后显示为空。

我不知道追加是否正在发生。我试图遍历formdata,但是它什么也没显示。

我的HTML代码:

<form (ngSubmit)="onSubmit()" [formGroup]="myForm1">

    <ion-label required class="label">Title
        <span>
            <b style="color:red">*</b>
        </span>
    </ion-label>
    <ion-textarea class="options" formControlName="title">
    </ion-textarea>

    <ion-label required class="label">File
        <span>
            <b style="color:red">*</b>
        </span>
    </ion-label>
    <input type="file" name="file" (change)="select($event)" formControlName="file">

    <button ion-button type="submit">Submit</button>

</form>

我的ts文件:

select(event) {
  this.fileList = null;
  this.fileList = event.target.files;
  let file = event.target.files[0];
  console.log(event.target.files[0]);
  console.log(event.target.files);
  this.form.append("title", this.myForm1.value.title);
  console.log(this.myForm1.value.title);
  console.log(this.form.get("title"));
  console.log(this.form);
  this.form.append("file", file);

  Object.entries(this.form).forEach(
    ([key, value]) => console.log(key, value),
    console.log("1")
  );

  for (var pair of Object.entries(this.form).entries()) {
    console.log("&&&&");
    console.log(pair[0] + ', ' + pair[1]);
  }
  console.log(this.form.get("file"));
  console.log(Object.entries(this.form));
  console.log(Object.values(this.form));
}

onSubmit() {

  this.ddocument.filePostData(this.form, this.uid).then((result) => {
    this.data = result;
    console.log(this.data);
    this.aler(this.data.message);
  }, (err) => {
    this.aler(err);
  });
}

我的服务器发布代码是:

filePostData(data, uid) {
  console.log(data);
  return new Promise((resolve, reject) => {
    let headers = new Headers();
    headers.append('Content-Type', 'multipart/form-data');
    headers.append('Accept', 'application/json');

    this.http.post(this.url.getCreateDocumentUrl() + uid, (data),

      { headers: headers })

      .subscribe(res => {
        resolve(res.json());
        console.log(res);
      }, (err) => {
        reject(err);
      });
  });
}

我尝试了所有可能的方法,但是没有用。有什么可以帮助我的吗?预先感谢。

0 个答案:

没有答案