PHP $ _FILE数组缺少提交的HTML表单中的条目

Chr*_*ris 5 php forms apache file-upload

基本上,当我在一个表单中上传超过25个文件时,PHP $ _FILES数组被裁剪为前25个条目(0-24),这是不正确的.它应该全部为31.这只发生在一个特定的服务器上.Apache与PHP.我已经在其他两台服务器上尝试过,它们似乎允许所有31台服务器.

这可能是由Apache中的一些配置选项引起的吗?或者它更可能是PHP中的配置问题?

我唯一能想到的可能就是LimitRequestFields apache指令,但这应该抛出一个错误,而不是将它裁剪到前25个.对吗?

我知道在一个表单中有这么多文件字段是不好的做法,但由于此特定页面所需的功能,这是必要的.我无法解决这个问题.

任何有关此问题的帮助将不胜感激.

下面的HTML演示了我遇到的问题.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<form enctype="multipart/form-data" action="test.php" method="post">
<input type="file" name="field_id_11[0][1]"/>
<input type="file" name="field_id_11[1][1]"/>
<input type="file" name="field_id_11[2][1]"/>
<input type="file" name="field_id_11[3][1]"/>
<input type="file" name="field_id_11[4][1]"/>
<input type="file" name="field_id_11[5][1]"/>

<input type="file" name="field_id_11[6][1]"/>
<input type="file" name="field_id_11[7][1]"/>
<input type="file" name="field_id_11[8][1]"/>
<input type="file" name="field_id_11[9][1]"/>
<input type="file" name="field_id_11[10][1]"/>
<input type="file" name="field_id_11[11][1]"/>
<input type="file" name="field_id_11[12][1]"/>
<input type="file" name="field_id_11[13][1]"/>
<input type="file" name="field_id_11[14][1]"/>
<input type="file" name="field_id_11[15][1]"/>
<input type="file" name="field_id_11[16][1]"/>
<input type="file" name="field_id_11[17][1]"/>
<input type="file" name="field_id_11[18][1]"/>
<input type="file" name="field_id_11[19][1]"/>
<input type="file" name="field_id_11[20][1]"/>
<input type="file" name="field_id_11[21][1]"/>
<input type="file" name="field_id_11[22][1]"/>

<input type="file" name="field_id_11[23][1]"/>
<input type="file" name="field_id_11[24][1]"/>
<input type="file" name="field_id_11[25][1]"/>
<input type="file" name="field_id_11[26][1]"/>
<input type="file" name="field_id_11[27][1]"/>
<input type="file" name="field_id_11[28][1]"/>
<input type="file" name="field_id_11[29][1]"/>
<input type="file" name="field_id_11[30][1]"/>
<input type="text" name="blah" value="something"/>
<input type="submit" />
</form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 3

最大 25 个文件”和“仅发生在特定服务器上”似乎表明该服务器上有一些配置/安全措施。

25 max uploads ”是suhosin PHP 扩展的默认配置- 请参阅suhosin.upload.max_uploads配置指令。


该扩展在某些 Linux 发行版上默认安装(出于安全原因) ——例如,如果我没记错的话,Ubuntu 默认提供它;您可以在 的输出中检查它是否已安装/启用phpinfo()