从现有表单创建FormData对象时,是否会自动附加和访问文件名?

时间:2014-02-19 17:57:59

标签: form-data

表格

<form id="my_form">
<input type="file" name="my_file">
<input type="text" name="field_one">
<input type="text" name="field_two">
<button>send</button>
</form>

创建FormData对象

var myFormData = new FormData($("#my_form")[0]);

问题

my_file的文件名是否可访问,即使它没有明确定义(对于DOM操作和插入数据库)?

This州:

  

您还可以直接将文件或Blob附加到FormData对象,   像这样:

     

data.append("myfile", myBlob, "filename.txt");

但它没有指定在从现有表单创建FormData对象时是否自动添加文件名。

如果没有自动附加,是唯一可以通过多个append()语句手动创建FormData对象的选项,在这种情况下可以使用文件名定义吗?

1 个答案:

答案 0 :(得分:0)

似乎文件名会自动添加(仅在Chrome中测试过,不确定在其他情况下是否有所不同)。

重现步骤

  • 转到http://jsfiddle.net/rwone/vsRSf/
  • 在“开发者工具”中打开“网络”标签
  • 选择两个图像,然后单击按钮
  • 查看“网络”标签,您将看到文件名已定义

enter image description here

图像信息仅使用两个参数定义,而不是第三个文件名参数:

myFormData.append(name, file);

基于这篇文章的原始小提琴:

https://stackoverflow.com/a/21901886/1063287