我正在使用带有PHP的 标签上传多个文件。 我注意到如果我选择超过20个文件,PHP仅上传前20个文件。 有没有办法扩展这个限制?
为了避免一种类型的DOS攻击,即临时文件耗尽,PHP 5.2.12中添加了此限制。
PHP 5.2.12的更改记录:
添加了“max_file_uploads”INI指令,默认情况下可以将每个请求的文件上传数量限制为20个,以防止可能的DOS攻击通过临时文件耗尽,由Bogdan Calin识别。(CVE-2009-4017,Ilia)
您可以通过更改max_file_uploads
指令来增加此限制。
上传的总大小受限制,而不是文件数量。您可以通过编辑php.ini
中的这一行来更改总大小:
post_max_size = 256M
或更多。因此,如果您想上传50个100 MB的文件,则应将此限制设置为超过5000 MB。
max_file_uploads
指令设置为更大的数字(默认值为20)以允许在一个请求中上传更多文件,在没有增加post_max_size
指令的情况下,文件的总大小可能会超过允许的限制并失败。因此,这个解决方案连同@artefacto的解决方案将会得到期望的结果。 - Fr0zenFyr我认为这不是20个限制的问题,而是php配置post_max_size和upload_max_filesize或者上传表单处理不当的问题。你能给我们展示一下你的表单和处理的样本源代码吗?
您需要在php.ini文件中更新max_file_uploads权限和upload_max_filesize。
您可以在php.ini文件中添加此行。
max_file_uploads=100
upload_max_filesize = 500M
请查看 php.ini 中的 upload_max_filesize