当我尝试一次上传超过20个文件时,Web服务器只会看到前20个.任何其他文件都会被忽略.问题是什么?
简单的代码尝试:
<form action="index.php" method="post" enctype="multipart/form-data">
<?php
if($_FILES){
print_r($_FILES);
}
else{
for($i = 0; $i < 30; $i++)
{
echo '<input type="file" name="file'.$i.'"><br/>';
}
}
?>
<input type="submit" value="go">
</form>
Run Code Online (Sandbox Code Playgroud)
print_r() 输出:
Array ( [file0] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpD42.tmp [error] => 0 [size] => 274217 ) [file1] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpD52.tmp [error] => 0 [size] => 274217 ) [file2] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpD73.tmp [error] => 0 [size] => 274217 ) [file3] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpD83.tmp [error] => 0 [size] => 274217 ) [file4] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpD94.tmp [error] => 0 [size] => 274217 ) [file5] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpDB4.tmp [error] => 0 [size] => 274217 ) [file6] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpDC5.tmp [error] => 0 [size] => 274217 ) [file7] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpDE5.tmp [error] => 0 [size] => 274217 ) [file8] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpDF5.tmp [error] => 0 [size] => 274217 ) [file9] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE06.tmp [error] => 0 [size] => 274217 ) [file10] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE26.tmp [error] => 0 [size] => 274217 ) [file11] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE37.tmp [error] => 0 [size] => 274217 ) [file12] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE57.tmp [error] => 0 [size] => 274217 ) [file13] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE68.tmp [error] => 0 [size] => 274217 ) [file14] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE78.tmp [error] => 0 [size] => 274217 ) [file15] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpE98.tmp [error] => 0 [size] => 274217 ) [file16] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpEB9.tmp [error] => 0 [size] => 274217 ) [file17] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpEC9.tmp [error] => 0 [size] => 274217 ) [file18] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpEE9.tmp [error] => 0 [size] => 274217 ) [file19] => Array ( [name] => 39442.jpg [type] => image/jpeg [tmp_name] => W:\tmp\phpEFA.tmp [error] => 0 [size] => 274217 ) )
Run Code Online (Sandbox Code Playgroud)
.htaccess:php_value max_file_uploads 100 - 没有帮助
ini_set('max_file_uploads', 100) - doesn't help
Run Code Online (Sandbox Code Playgroud)
我刚在本地服务器上添加了一行到php.ini:
max_file_uploads = 100
Run Code Online (Sandbox Code Playgroud)
这有帮助.但我不认为主机在客户端的Web服务器上更改它.没有编辑就会对这个值产生非常酷的影响php.ini.
Wri*_*ken 16
将max-file-uploads设置设置得更高(是的,它是'newish'设置).
它是PHP_INI_SYSTEM,因此可以在php.ini或webserver/apache配置中设置..htaccess我害怕没有或"脚本内"访问.
最近我遇到了同样的问题,但遗憾的是上述解决方案都没有适用于我.所以我想我必须在这里分享有效的解决方案
当我尝试上传50多张图片时,服务器将其限制为20.(我正在使用PHP 5.3.6开发Centos服务器)
max_file_uploads = 100PHP.ini文件中的设置甚至没有帮助,但数字文件上传限制更改为25
在phpinfo()页面中搜索数值25时,我遇到了一个值为25的参数suhosin.upload.max_uploads.
将max_file_uploads = 100suhosin.upload.max_uploads 设置为100以及在PHP.ini文件中工作,现在在服务器上我们可以上传多达100个文件.(我不确定我们是否有任何其他文件我们修改值suhosin参数,但在php.ini或php.d/suhosin.ini中设置suhosin值将起作用:))
max_file_uploads = 100
suhosin.upload.max_uploads=100
Run Code Online (Sandbox Code Playgroud)
http://www.hardened-php.net/suhosin/configuration.html
您可能会遇到post_max_size或upload_max_filesize设置限制。
您可以在 php.ini 中更改它们(post_max_size 应大于 upload_max_filesize)