Javascript:如何将多个图像文件推入数组
Javascript: How to push multiple image files into array
我有多个输入文件
<input type="file" name="file_name[]" id="file_id_0">
<input type="file" name="file_name[]" id="file_id_1">
<input type="file" name="file_name[]" id="file_id_2">
我想要每个都存储在数组中所以我做到了,这对我来说是有效的
var imageContainer = [];
var file_name = document.getElementsByName('file_name[]');
for(var i = 0; i< file_name.length; i++){
alert(i);
var fileUpload = document.getElementById('file_id_'+i);
imageContainer.push(fileUpload.files[0]);
}
var data = new FormData();
for(var b=0; b<imageContainer.length; b++){
data.append('file_name[]', imageContainer[b]);
}
但是如果其中一个输入文件是空的,则我得到了一个错误,不能读取属性'files'为null。
所以我试着用其他方式推送文件但是不起作用
var file_nameArr = [];
$('input[name="file_name[]"]').each(function(k,v){
file_nameArr.push($(v).val()); //How do i push each files into my array?
});
检查fileUpload
是否为空,在for循环中添加如下所示的条件:
var file_name = document.getElementsByName('file_name[]');
for(var i = 0; i< file_name.length; i++){
alert(i);
var fileUpload = document.getElementById('file_id_'+i);
if(fileUpload )
imageContainer.push(fileUpload.files[0]);
}
但是如果其中一个输入文件是空的,则我得到了一个错误,不能读取属性'files'为null。
这并不意味着input
是空的,它意味着你的getElementById
调用根本没有返回一个元素。
没有理由调用getElementById
,您已经拥有由file_name
变量引用的集合中的元素。只要使用它,检查它的length
,以确保它至少有一个文件:
var imageContainer = [];
var file_name = document.getElementsByName('file_name[]');
for(var i = 0; i< file_name.length; i++){
alert(i);
var fileUpload = file_name[i]; // ***
if (fileUpload.files.length) { // ***
imageContainer.push(fileUpload.files[0]);
} // ***
}
v是您的元素,所以$(v)是无意义的,请查看示例。
var file_nameArr = [];
$('input[name="file_name[]"]').each(function(k,v){
if (v.value.length > 0)
file_nameArr.push(v.value); //How do i push the files into my array?
else
console.log('input is empty')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" name="file_name[]" id="file_id_0">
<input type="file" name="file_name[]" id="file_id_1">
<input type="file" name="file_name[]" id="file_id_2">
<input type="file" name="file_name[]" id="file_id_3">
<input type="file" name="file_name[]" id="file_id_4">
<input type="file" name="file_name[]" id="file_id_5">
相关文章:
- 如何使用谷歌应用程序脚本从电子邮件中提取内联文件/图像
- 当我在操作属性中写入页面名称时,文件图像不会上传
- 将已编辑的文件(图像)数组发送到php脚本
- 预览上传的文件(图像)
- 使用 src 在 PHP 中链接文件(图像,js)
- 通过javascript处理默认配置文件图像的更好方法
- 使我的想法成为可能,为画布输入文件图像命名
- 跨原点图像加载(twitter配置文件图像)
- 输入文件(图像)显示空数组,如果数组中有数据的话
- 如何通过tastypie上传文件/图像
- 上传到nodejs时损坏的文件/图像
- 获取上载的文件/图像的名称
- Django:除主页模板外,静态文件图像URL路径中断
- Parsley验证文件图像没有'不起作用
- 如何在单击'时设置文件/图像的名称;将图像另存为'
- 上载要分析的配置文件图像
- 将数据库mysql中的文件图像插入excel
- 如何使用twitter api(js)获取用户配置文件图像
- 在javascript中从本地驱动器读取文件/图像
- 使用ajax上传文件图像时页面冻结