Ответ 1
Установите параметр max-file-uploads выше (да, это новая настройка).
Он PHP_INI_SYSTEM, поэтому он может быть установлен в конфигурации php.ini или webserver/apache. Нет .htaccess
или 'in script', я боюсь.
Когда я пытаюсь загрузить более 20 файлов за раз, веб-сервер видит только первую 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>
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 ) )
.htaccess: php_value max_file_uploads 100 - не помогает
ini_set('max_file_uploads', 100) - doesn't help
Я только что добавил строку к php.ini на моем локальном сервере:
max_file_uploads = 100
И это помогло. Но я не думаю, что хост-менеджер меняет его на клиентском веб-сервере. Было бы очень круто повлиять на это значение без редактирования php.ini
.
Установите параметр max-file-uploads выше (да, это новая настройка).
Он PHP_INI_SYSTEM, поэтому он может быть установлен в конфигурации php.ini или webserver/apache. Нет .htaccess
или 'in script', я боюсь.
Недавно я столкнулся с одной и той же проблемой, но, к сожалению, ни один из вышеперечисленных решений не работал у меня. Поэтому я думаю, что я должен поделиться работающим решением здесь.
Когда я пытался загрузить более 50 изображений, сервер ограничивал его до 20. (Я работал на Centos Server с PHP 5.3.6)
Настройка max_file_uploads = 100
в файле PHP.ini не помогла даже, но предел загрузки числовых файлов был изменен на 25
При поиске числового значения 25 на странице phpinfo() я столкнулся с параметром suhosin.upload.max_uploads со значением 25.
Настройка suhosin.upload.max_uploads до 100 вместе с max_file_uploads = 100
в файле PHP.ini, теперь на сервере мы можем загрузить до 100 файлов. (Я не уверен, есть ли у нас какой-либо другой файл, в котором мы изменяем значения параметров suhosin, но установление значений suhosin в php.ini OR php.d/suhosin.ini будет работать:))
max_file_uploads = 100
suhosin.upload.max_uploads=100
Есть ли ограничения относительно того, сколько PHP может опубликовать. См. upload_max_filesize, max_file_uploads и post_max_size.
Возможно, вы столкнулись с post_max_size или upload_max_filesize ограничения.
Вы можете изменить их в php.ini(post_max_size должно быть больше, чем upload_max_filesize)
Вы можете создать php.ini файл в своем каталоге веб-сайта на хостинге и записать в нем:
max_file_uploads = 400
Это разрешенный способ перезаписать php.ini на большинстве хостингов (но не в localhost XAMP и т.д.), насколько я пытался
Если вы запустите PHP как модуль Apache, вы можете изменить его на уровне виртуального хоста (aka httpd.conf
). Вы должны помнить, что, являясь директивой PHP_INI_SYSTEM
, вы должны использовать php_ admin _value (обычный php_value будет проигнорирован). Пример кода может быть:
<Location "/api">
php_admin_value max_file_uploads 250
</Location>
В настройке max_file_uploads
есть предел, установленный на 20.
http://de3.php.net/manual/en/ini.core.php#ini.max-file-uploads