【问题标题】:FormData is showing empty while appending the value in Angular 2在 Angular 2 中附加值时,FormData 显示为空
【发布时间】:2018-06-18 12:19:49
【问题描述】:

我正在使用 RecordRTC 录制语音并尝试将录制的语音发送到服务器。下面是存储 blob 和文件名的代码。

public uploadToServer(recordRTC, callback) {
    let blob = this.recordRTC instanceof Blob ? this.recordRTC : this.recordRTC.blob;
    let fileType = blob.type.split('/')[0] || 'audio';
    let fileName = (Math.random() * 1000).toString().replace('.', '');
    if (fileType === 'audio') {
      fileName += '.' + (!!navigator.mozGetUserMedia ? 'ogg' : 'wav');
    } else {
      fileName += '.webm';
    }
    // create FormData
    var formData: FormData = new FormData();
    console.log(fileName);
    console.log(blob);
    formData.append(fileType + '-filename', fileName);
    formData.append(fileType + '-blob', blob);
    console.log(formData);
}

我分别控制了文件名和 blob 文件。它正在显示。但是当我在 formData 中附加 blob 和文件名时,它显示为空白。

请帮帮我。

【问题讨论】:

  • 你不能控制台记录formData。
  • 那怎么知道formData是否被追加?
  • 检查我的答案

标签: angular typescript form-data recordrtc


【解决方案1】:

console.log(formData) 中始终显示为空。您可以使用formData.get('PassKeyHere') 获取数据。

【讨论】:

  • 获取错误:formData 类型上不存在属性获取。
  • let formdata = new FormData(); formdata.append('test', '123'); formdata.get('test'); 我已经尝试了上面的代码,它在打字稿中工作正常。
  • 我认为您的 tsconfig 或 linting 工具存在问题。
  • 那么有没有其他方法可以做到这一点?
【解决方案2】:

您可以使用它来附加 blob 数据。

form.append("blob",blob, filename);

到控制台日志。用这个。

for (var pair of formData.entries()) {
  console.log(pair[0]+ ', ' + pair[1]); 
}

如果附加了数据,控制台日志应该可以工作。

【讨论】:

  • 出现错误:formData 类型上不存在属性条目。
  • 我正在使用打字稿。
  • 试试 formData.forEach()
  • stackoverflow.com/users/5694740/maneesh-rao 抑制这个错误,用 ts-lint 忽略它,它对我有用,也给出了这个关于条目不存在的错误。
猜你喜欢
  • 1970-01-01
  • 2017-12-25
  • 2020-10-02
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多