首页 > 解决方案 > 从输入中获取文件列表

问题描述

我有这个输入<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)>]并且使用var files = $('#file')[0].files;什么都不显示。

标签: javascriptjquerydjango

解决方案


有很多问题:

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

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

var files=[];
var length = $("#file").length;
for (i = 0; i < length; i++) {
   files[i] = $('#file')[i];
}
formdata.append('file',files);

推荐阅读