【问题标题】:How to append a file to a FormData object? [duplicate]如何将文件附加到 FormData 对象? [复制]
【发布时间】:2019-09-21 18:53:07
【问题描述】:

在我的 Angular 应用程序中,我试图将从 FileUpload 控件中选择的文件附加到 FormData 对象:

fileUploadHandle(files) {    
    if (files && files.length > 0) {
      this.fileContentFormData = files[0];
    }
}

console.log('file content - ' + JSON.stringify(this.fileContentFormData));
form_data.append('file', this.fileContentFormData);
form_data.append('username', 'Chris');
console.log('form data - ' + JSON.stringify(form_data));

我知道我的文件正在被检索,因为当我运行时 console.log('file content - ' + JSON.stringify(this.fileContentFormData)); 显示如下:

文件内容 - {"file":{},"id":0,"icon":"doc","src":{"changeingThisBreaksApplicationSecurity":"data:application/vnd.openxmlformats-officedocument.wordprocessingml. document;base64,UEsDBBQABgAIAAAAIQAJJIeCgQ="}}

但是,当我跑步时 console.log('form data - ' + JSON.stringify(form_data)); 甚至连“用户名”键值对都没有显示出来。

有人可以告诉我在附加到这个 FormData 对象时我做错了什么吗?非常感谢!

【问题讨论】:

    标签: angular


    【解决方案1】:

    以前,无法使用调试器检查 FormData 对象。最新版本的 Chrome 和 Firefox 现在支持FormData.entries() 检查FormData

    // Create a test FormData object
    var formData = new FormData();
    formData.append('key1', 'value1');
    formData.append('key2', 'value2');
    
    // Display the key/value pairs
    for (var pair of formData.entries()) {
        console.log(pair[0]+ ', ' + pair[1]); 
    }
    

    来源请查看this thread

    【讨论】:

    • 嗨,我在我的代码上使用了这个:var pair of form_data.entries(),但我得到一个编译错误:“FormData”类型上不存在属性“条目”.ts(2339)
    • 并非所有浏览器都支持entries方法。在此处查看可能的解决方案:stackoverflow.com/questions/50677868/…
    • VS Code 中出现此错误
    • 我用过alert(JSON.stringify(form_data)); & {} 正在打印,所以 form_data 中没有任何内容。我不确定这如何回答我的问题。
    • 我也试过form_data.append('testAdd', 'testValue'); 看看是否可以在formData 中添加一些东西,但它仍在打印一个空对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2017-12-25
    • 2014-03-21
    • 2020-12-03
    相关资源
    最近更新 更多