HTML5:在<input type="file"/>上选择的文件数量上限是多少?

3
我想上传一些大量的图像文件(1000+)。
我想知道HTML标签可以一次选择多少个文件?如果有限制,请提供一些参考资料。当我尝试上传超过1600个文件时,它无法接受这些文件。
您可以在此快速测试: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml5_input_type_file 注意:向输入标签添加属性multiple=""以允许多重选择。

@YusrilMaulidanRaji 它说在 Chrome 上已经修复了,但我正在使用 Chrome 并且问题仍然存在。 :( 但是感谢您找到了重复项。 - Biswas Khayargoli
使用FTP或其他更适合此类事情的传输机制?我的初始问题总是,我为什么要通过HTTP上传1000多个文件? - Icepickle
@BiswasKhayargoli 不,它并没有说在Chrome中已经修复了。但是你试过在Firefox中尝试吗? - Yusril Maulidan Raji
3个回答

2

看起来规范并没有定义一次可以选择的文件数量。一些实现可能有一些最大值,但我在Chromium源代码中很难找到一个。

当然,您仍然可能受到其他因素的限制,包括服务器的最大有效负载大小以及上传文件所需的时间,这取决于用户使用的任何网络连接。

此外,请注意您可以只使用multiple作为属性,而不需要使用multiple=""


1
理论上的限制不足并不意味着在实践中没有限制 - 服务器可能会拒绝接受过大的请求体,并以 413 Payload Too Large 做出响应。 - Niet the Dark Absol
是的,你说得对,我会修改我的答案并指出这一点。 - Hugh Rawlinson
不,我现在没有上传文件。我只是试图选择文件,当尝试选择1600多个文件时,文件选择器不会简单地响应,就像它不显示选择了多少个文件一样,但是当选择少量文件时,它会显示。 - Biswas Khayargoli
可能是因为你的浏览器进行了一些优化,导致它不响应。浏览器可能假设没有人会尝试选择1000多个文件。请问您使用的是哪个浏览器? - Hugh Rawlinson
我正在使用 Chrome。 - Biswas Khayargoli

0
根据规格说明Mozilla开发文档,似乎没有限制。
这意味着限制取决于客户端(浏览器内存、计算机限制)或必须处理请求的服务器。
这也意味着您不应该只是“期望”它能够工作,因为低端设备(或智能手机、平板电脑等)可能会成为限制因素。

当我们选择文件时,文件名会不断添加到文件选择对话框中。那么在此处追加的字符串是否有一定的限制,比如字符串长度? - Biswas Khayargoli
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Jordumus

0
也许更好的做法是实现一种本地选择1600个文件并将它们添加到一个.zip文件中,然后上传该文件。然后您可以在服务器端解压缩(如果您希望尽可能快地完成此操作,请使用较小的压缩比率)并处理单独的文件。

虽然我同意这是一个更好的解决方案(或者像dropzone这样的库),但老实说,这并没有回答他的问题。 :) - Jordumus
如果他的问题的答案是“无法完成”,那么建议更好的替代方案是我所欣赏的信息 :-) - Fréderic Cox
事实是:这个问题的答案不是“无法完成” :D - Jordumus
没有一个确定的答案,因为它取决于客户端。所以它与“无法完成”相同,因为它无法可靠地完成。所以开发者必须找到另一种可靠的方法来解决问题。 - Fréderic Cox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接