【问题标题】:HTML5: What is the max number of files that can be selected on <input type ="file" /> [duplicate]HTML5:<input type ="file" /> 上可以选择的最大文件数是多少 [重复]
【发布时间】:2017-03-02 09:08:12
【问题描述】:

我想上传一些大量的图片文件(1000+)。

我想知道html标签一次可以选择多少个文件?如果有一定的限制,请给我一些参考。当我尝试上传超过 1600 个文件时,它并不完全接受这些文件。

您可以在这里快速测试: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml5_input_type_file

注意:将属性 multiple="" 添加到输入标签以允许多选。

【问题讨论】:

  • @YusrilMaulidanRaji 它说它已固定在 chrome 上,但我正在使用 chrome 并且它仍然存在。 :( 但谢谢你找到了重复的。
  • 使用 FTP 或其他更适合此类事情的传输机制?我最初的问题始终是,我到底为什么想要/需要通过 HTTP 上传 1000 多个文件?
  • @BiswasKhayargoli 不,它并没有说它已在 Chrome 中修复。但是你用 Firefox 试过了吗?

标签: html file input


【解决方案1】:

看起来规范没有定义您可以一次选择的有限数量的文件。有些实现可能有一些最大值,但我无法在 Chromium 的源代码中轻松找到。

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

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

【讨论】:

  • 缺乏理论上的限制显然并不意味着实际上没有限制 - 服务器可能拒绝接受太大的请求正文,而是以 413 Payload Too Large 响应。
  • 是的,你是对的,我会修改我的答案以指出这一点。
  • 现在不,我不上传文件。我只是在尝试选择文件,当尝试选择 1600 多个文件时,文件选择器不会简单地响应,就像它不显示选择了多少文件但在选择少量文件时会显示。
  • 它可能没有响应,因为您的浏览器中有一些优化假设没有人会尝试选择 1000 多个文件。你用的是哪个浏览器?
  • 我正在使用 chrome。
【解决方案2】:

根据specificationsMozilla dev docs 似乎没有限制。

这意味着限制取决于必须处理请求的客户端(浏览器内存、计算机限制)或服务器。

这也意味着您不应该仅仅“期望”它能够工作,因为低端设备(或智能手机、平板电脑等)可能是一个限制因素。

【讨论】:

  • 当我们选择文件时,文件名会一直附加在文件选择器对话框中。附加在那里的字符串是否有一定的限制,比如字符串长度?
  • 来自规范:“如果文件的内容与表单一起提交,则文件输入应由适当的内容类型(例如,“application/octet-stream”)标识。如果多个文件将作为单个表单条目的结果返回,它们应该作为嵌入在“multipart/form-data”中的“multipart/mixed”返回。” - 除了内存溢出之外,人们不会猜到。
【解决方案3】:

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

【讨论】:

  • 虽然我同意这是一个更好的解决方案(或者像 dropzone 这样的库),但老实说,它并没有回答他的问题。 :)
  • 如果他的问题的答案是“它无法完成”,那么建议更好的替代方案是我将不胜感激的信息:-)
  • 事情是:这个问题的答案不是“做不到”:D
  • 没有明确的答案,因为它取决于客户端。所以它与“不能完成”相同,因为它不能可靠地完成。因此,开发人员必须找到另一种可靠的方法来解决问题。
猜你喜欢
  • 2011-04-01
  • 2010-12-08
  • 2011-08-13
  • 2019-01-27
  • 2015-10-10
  • 2013-03-28
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
相关资源
最近更新 更多