从输入获取文件列表

时间:2019-04-15 22:19:50

标签: javascript jquery django

我有这个输入<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}}什么也不给我。

2 个答案:

答案 0 :(得分:1)

有很多问题:

  1. 如果要保留其先前的值,则不能重新声明相同的变量
  2. 您需要更改索引,以免将其保存到同一位置
  3. $(“#file”)-不应该是数组,它是一个对象,所以我很惊讶它没有引发错误

假设您的代码合法。您可以这样做:

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,并且效果很好