PHP – Максимальный общий размер загрузки?

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

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

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

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

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

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

 $post_max_size = ini_get('post_max_size'); $upload_max_filesize = ini_get('upload_max_filesize'); 

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

 <?php phpinfo(); ?> 

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

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

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

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

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

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

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

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

 server { ... client_max_body_size 100M; .... } 

Вот:

 max_execution_time max_input_time memory_limit post_max_size upload_max_filesize max_file_uploads 

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

 /** * 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); }