Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何分别选择多个图像?_Javascript_Html_Image - Fatal编程技术网

Javascript 如何分别选择多个图像?

Javascript 如何分别选择多个图像?,javascript,html,image,Javascript,Html,Image,我上传多个图像时遇到问题,因为当我一次只选择一个图像时,文件数组被覆盖 以下是我正在使用的HTML: <input type="file" id='files' name="files[]" multiple/> 它只显示一个文件,因为当用户不是同时选择两个图像,而是分别选择时,整个阵列被覆盖。那么,我怎样才能让用户分别选择两幅图像,并且仍然获得整个列表呢 您必须在内存中单独管理它。一个字段不会存储以前存储的值。就像在文本输入字段中键入新值后,它不会记住以前的值一样。请参阅(您必须

我上传多个图像时遇到问题,因为当我一次只选择一个图像时,文件数组被覆盖

以下是我正在使用的HTML:

<input type="file" id='files' name="files[]" multiple/>

它只显示一个文件,因为当用户不是同时选择两个图像,而是分别选择时,整个阵列被覆盖。那么,我怎样才能让用户分别选择两幅图像,并且仍然获得整个列表呢

您必须在内存中单独管理它。一个字段不会存储以前存储的值。就像在文本输入字段中键入新值后,它不会记住以前的值一样。请参阅(您必须使其适应二进制数据。请参阅和)


或者,在用户选择一个文件后,动态创建一个新的文件输入。

您可以利用push方法将每个图像附加到数组中,然后根据需要弹出它们吗?基本上,迭代数组。如果他们选择两个文件,它将执行推送、推送和完成


如果他们一次上传一张图片,同样的事情会发生得更慢。

感谢您的快速回复!创建一个新的文件输入是一个想法,但它看起来有点丑陋。有没有一种方法可以获取该文件数据,然后将其临时存储在不同的变量/列表中?我尝试了这种方法,它在控制台中完整地显示了该文件,但是必须使用使用该数据通过Ajax调用发送数据。因此,它将使用$(“#files”)[0]文件获取列表,并对其进行迭代或类似操作,以便我可以使用XHR发送每个文件。二进制数据是唯一的方法吗?你可以把二进制数据转换成用Base64编码的数据,哦,真管用!万分感谢你,胡安!!!我为此挣扎了好几个小时!!谢谢你的回答。是的,也许,有没有一种方法可以获取所有数据并将其存储在数组中的某个位置?因为它最终将被发送到Ajax,以将其添加到post请求中。如果看不到您试图对图像执行的操作,则很难告诉您如何操作。但我想你可以用一个简单的for循环。类似于:var myArray=new Array(),用于文件中的图像:myArray.push(image)这当然是psuedo代码,您必须适应javascript。我也从来没有用过文件。但是,如果上载多个文件,它们已经位于名为files[]的数组对象中。
$("#files")[0].files