2009-04-07 5 views
6

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

ответ

19

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

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

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

Различные среды размещения будут иметь разные значения, которые могут повлиять на ваши возможности при развертывании.

+3

Перезапуск Apache помогает после того, как вы внесли все эти изменения, но ничего не происходит – sjobe

+0

есть другие, см. Мой ответ ниже – docesam

0

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

+0

Предел по умолчанию для моей Linux-машины составлял 2 МБ. – Benson

+0

Ну да, но когда вы покупаете хостинг, они собираются увеличить это, и если они этого не сделают, вы можете попросить их. –

+0

Crappy hosters не делают. – ThiefMaster

0

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

4

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

<?php phpinfo(); ?> 

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

4

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

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

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

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

+0

'file_uploads',' memory_limit' и 'max_execution_time' не ограничивают максимальный общий размер выгрузки. – Gumbo

6

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

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

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

/** 
* 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

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

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

здесь:

max_execution_time 
max_input_time 
memory_limit 
post_max_size 
upload_max_filesize 
max_file_uploads 
Смежные вопросы