javascript - 从输入中获取文件列表
问题描述
我有这个输入<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;
什么都不显示。
解决方案
有很多问题:
- 如果要保留以前的值,则不能重新声明相同的变量
- 您需要更改索引,以免它保存到同一个位置
- $("#file") - 不应该是一个数组,它是一个对象,所以我很惊讶它没有抛出错误
假设您的代码是合法的。你可以这样做:
var files=[];
var length = $("#file").length;
for (i = 0; i < length; i++) {
files[i] = $('#file')[i];
}
formdata.append('file',files);
推荐阅读
- spring-boot - 无法将战争部署到 Tomcat
- apache - 502 代理错误(docker + traefik + apache)
- reactjs - 带有反应的innerHtml中的onclick元素
- html - 将内容与 flexbox 居中对齐
- python - 我在这里做错了什么?(Python 3) (初学者)
- c - 为什么在 main() 函数的起始行之后声明变量会导致错误?
- java - 从其他类访问和定义后,数组索引保持为空
- powershell - 如何将 System.Collections.ArrayList 添加到 PowerShell 自定义对象?
- mysql - 如何在 Mysql 中编写一个将表名作为参数传递的过程
- javascript - 如何在函数中使用变量的最新值