我尝试使用带有multiple
属性的输入文件并将formData拆分,因此我会为多个文件元素中的每个文件设置一个formData isnatce。
<input type="file" name="file" multiple></label>
new FormData(formElement) // <--- Need to have this for each file selected
我需要这个,因为我使用的是Cloudinary API,他们一次只接受一个文件,所以我需要发送多个Ajax请求,对于每个文件,每个文件需要formData
个实例选中,但问题是,FormData
接受form
元素的参数作为参数,我无法将文件分开。
答案 0 :(得分:3)
您可以使用$.when()
,$.map()
将File
<input type="file">
的每个FileList
附加到新FormData
个实例,然后调用{{1}每个$.ajax()
个实例。
注意,FormData()
事件属性替换为.on()
。在onsubmit
{required
{.value
{{}} {{{}}} name="cloud_name"
name="upload_preset"
<input type="text">
.value
元素{1}}事件发生。
form
答案 1 :(得分:2)
每次创建formData对象时,都可以向其附加数据:
data.append("file", document.getElementById(file).files[0]);
但是在for循环中代替0,你可以放置循环索引并将数据发送到ajax。
您应该按照以下方式初始化数据:
var data = new FormData();