PHP - максимальный общий размер загрузки? - PullRequest
6 голосов
/ 08 апреля 2009

У меня есть веб-страница php с 15 полями. Пользователь будет использовать его для загрузки изображений. Я проверил это, загрузив 15 изображений JPG, каждый около 2 М, без каких-либо проблем. В день запуска я перенесу эту веб-страницу в другую среду общего хостинга Linux (пока не знаю, какая именно). Существуют ли какие-либо среды веб-хостинга, которые ограничивают размер общего количества загрузок в одном запросе http?

Ответы [ 9 ]

19 голосов
/ 08 апреля 2009

Да. Есть (насколько я помню) три или около того параметров конфигурации, которые будут влиять на ограничения размера загрузки:

  • upload_max_filesize, который устанавливает верхний предел размера загружаемых файлов
  • post_max_size, что ограничивает общий размер публикуемых данных, включая данные файла
  • max_input_time, который ограничивает период времени, в течение которого скрипту разрешается обрабатывать входные данные, включая опубликованные значения

upload_max_filesize - ограничение на каждый отдельный файл; однако max_post_size - это верхний предел для всего запроса, который включает все загруженные файлы.

В разных средах размещения эти значения будут установлены по-разному, что может повлиять на ваши возможности при развертывании.

6 голосов
/ 08 апреля 2009

Пределы загрузки устанавливаются через php ini. Вы можете попробовать получить их так:

$post_max_size = ini_get('post_max_size');
$upload_max_filesize = ini_get('upload_max_filesize');
4 голосов
/ 08 апреля 2009

Существует множество настроек PHP, ограничивающих процесс загрузки:

  • file_uploads
  • upload_max_filesize
  • max_input_time
  • memory_limit
  • max_execution_time
  • post_max_size

Я бы предложил прочитать эту страницу: http://www.radinks.com/upload/config.php

Хотя многие из них не ограничивают размер загрузки, это действительно ограничивает процесс загрузки - например, если лимит памяти слишком мал, у вас будут проблемы с загрузкой больших файлов, которые должны оставаться в памяти в течение небольшого периода времени.

4 голосов
/ 08 апреля 2009

Это настройка в php.ini. Вы можете посмотреть в выводе php info для поля, обозначенного «upload_max_filesize». Чтобы получить страницу с информацией о php, создайте php-файл со следующим кодом:

<?php phpinfo(); ?>

Этот пост на php.net дает вам пример кода для получения этой информации, а остальная часть страницы - сокровищница опций конфигурации php.

0 голосов
/ 16 августа 2016

здесь:

max_execution_time
max_input_time
memory_limit
post_max_size
upload_max_filesize
max_file_uploads 
0 голосов
/ 04 мая 2014

Если вы используете nginx, убедитесь, что у вас есть следующее:

server {
...
     client_max_body_size 100M;
....
}
0 голосов
/ 25 апреля 2013

Я видел лучшее решение здесь , и вот код:

/**
 * Returns the maximally uploadable file size in megabytes
 *
 * @return  string
 */
function getMaxUploadSize()
{
   $max_upload    = (int)(ini_get('upload_max_filesize'));
   $max_post      = (int)(ini_get('post_max_size'));
   $memory_limit  = (int)(ini_get('memory_limit'));
   return min($max_upload, $max_post, $memory_limit);      
}
0 голосов
/ 08 апреля 2009

директива php.ini "post_max_size" должна ограничивать объем данных, которые вы можете отправить за один POST. если вы разместите 15 изображений в одном посте, я уверен, что это все еще считается одним POST. Поэтому было бы неплохо проверить это значение перед тем, как начать работу.

0 голосов
/ 08 апреля 2009

Это было бы необычно, но, конечно, уточните у любой хостинговой компании, которую вы выберете. Если бы был лимит, он наверняка был бы больше 30 МБ.

...