我有这个输入<input type="file" id="file" name="file" accept="image/*" multiple>
,这允许用户选择几张图像,我需要将所有图像都传递给我的FormData
,所以我可以这样做:
var formdata = new FormData();
var files = $('#file')[0].files[0];
formdata.append('file',files);
但是那只能从列表中获取第一张图像,我如何拍摄所有图像并将其全部存储在var files
中?
预先感谢
编辑:我使用的后端是django/python
,如果我在后端使用这种方式,则只能从列表中检测到一个像这样的图像[<InMemoryUploadedFile: img.png (image/png)>]
,而仅使用{{ 1}}什么也不给我。
答案 0 :(得分:1)
有很多问题:
假设您的代码合法。您可以这样做:
var files=[];
var length = $("#file").length;
for (i = 0; i < length; i++) {
files[i] = $('#file')[i];
}
formdata.append('file',files);
答案 1 :(得分:0)
这是我的解决方法
var formdata = new FormData();
var files=[];
var count = document.getElementById('file').files.length;
for (i = 0; i < cont; i++) {
files[i] = document.getElementById('file').files[i];
formdata.append('file',files[i]);
}
使用JQuery
作为长度仅给我带来1个元素,并给我带来更多问题,因此
我在这一部分使用了JavaScript
,并且效果很好