Ограничение файла загрузки [дубликат]

.equals() сравнивает данные в классе (при условии, что функция реализована). == сравнивает местоположения указателя (расположение объекта в памяти).

== возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals() возвращает true, если два объекта содержат одни и те же данные equals() Versus == в Java

Это может вам помочь.

415
задан Paolo Forgia 13 October 2017 в 12:58
поделиться

14 ответов

Вам нужно установить значение upload_max_filesize и post_max_size в вашем php.ini:

; Maximum allowed size for uploaded files.
upload_max_filesize = 40M

; Must be greater than or equal to upload_max_filesize
post_max_size = 40M

. После изменения файлов (ов) php.ini вам необходимо перезапустить HTTP-сервер для использования новой конфигурации.

Если вы не можете изменить свой php.ini, вам не повезло. Вы не можете изменить эти значения во время выполнения; Загрузка файлов большего размера, чем значение, указанное в php.ini, будет сбой, так как время выполнения достигнет вашего вызова ini_set.

См. Описание основных директив php.ini .

726
ответ дан meagar 16 August 2018 в 04:12
поделиться
  • 1
    возможно, вы знаете маршрут по умолчанию, который хранится в файле php.ini? – Yo Momma 2 February 2010 в 15:07
  • 2
    В Linux это обычно в / etc / php / или что-то в этом роде. Если вы находитесь на общем сервере, вам не повезло, если ваш хостинг-провайдер недостаточно велико, чтобы предоставить файл php.ini для каждого пользователя. – Johannes Gorset 2 February 2010 в 15:10
  • 3
    Если вы используете WAMP под окнами, вы можете отредактировать его, щелкнув значок WAMP & gt; PHP - & gt; php.ini. В Debian мой файл конфигурации находится в / etc / php5 / apache2. – meagar♦ 2 February 2010 в 15:15
  • 4
    Это основная проблема, мой сайт находится на общем сервере. Так что общий консенсус, что я свежий из-за удачи? :( – Yo Momma 2 February 2010 в 15:19
  • 5
    Я предлагаю установить более высокий размер на post_max_size. Общий размер опубликованных полей может быть выше, чем размер файла, поэтому, если у вас есть крайний случай, когда кто-то загружает 40 МБ-файл, он будет терпеть неудачу из-за превышения post_max_size. – acme 6 March 2013 в 10:36

Вы можете изменить его через файл .htaccess.

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

Следующее должно позволить вам увеличить лимит загрузки (если поставщик сервера разрешает настройку PHP изменяется через .htaccess).

php_value upload_max_filesize 40M
php_value post_max_size 42M
122
ответ дан Andrew Moore 16 August 2018 в 04:12
поделиться
  • 1
    Кажется, что это не всегда работает. На моих dev машинах установка соответствующего значения в .htaccess выполнила задание. Однако на общем хостинге этот параметр не работает, однако сообщение об ошибке показывает, что максимально допустимый размер загрузки - это значение, которое я установил в .htaccess. Так происходит очень странная ситуация. – Eugeniu Torica 18 August 2012 в 22:09
  • 2
    Похоже, добавление этого в .htaccess работает только в том случае, если вы используете Apache. Попытайтесь и отлично поработайте для меня. – AngelGris 22 August 2014 в 16:49
  • 3
    Это не работает, если эти 2 строки в php.ini были раскомментированы :; Имя для пользовательских файлов php.ini (.htaccess). По умолчанию используется значение ".user.ini" ;user_ini.filename = ".user.ini"; Чтобы отключить эту функцию, установите этот параметр для пустого значения ;user_ini.filename = – Alan Deep 1 May 2018 в 16:29

Не все эти решения работают для меня !! (по умолчанию установлено 32 МБ). Проблема в большинстве случаев max_allowed_packet

Я работаю на localhost и используя MAMP.

Вот решения:

1. Если у вас нет my.ini

Добавить

--max_allowed_packet=168435456

К

...\MAMP\bin\startMysql.sh

2. Если у вас есть my.ini

В разделе

[mysqld]

Добавить

max_allowed_packet=100M

DONE!

1
ответ дан ErcanE 16 August 2018 в 04:12
поделиться

Я решил эту проблему, создав файл с именем .user.ini в каталоге, где находятся скрипты PHP-файла (это означает, что любой скрипт PHP в этом каталоге получает новый размер файла)

Содержимое .user.ini были:

upload_max_filesize = 40M
post_max_size = 40M
11
ответ дан Fabien Sa 16 August 2018 в 04:12
поделиться
  • 1
    Это решение для меня. Просто отлично работает. Если вы используете фреймворк, такой как codeignitor, & quot; .user.ini & quot; должно быть в том же месте, что и index.php – The Dude 3 December 2015 в 04:51
  • 2
    Благодарю. Это работает для меня. Это идеально подходит для общего хостинга, где у вас нет доступа к php.ini. Я бы просто добавил, что он доступен с PHP 5.3 – yacsha 26 September 2017 в 02:42

Ну, я хотел бы добавить свои 2 цента здесь.

Я использую общий веб-хостинг, и я много раз занимался этой проблемой, пытался решить ее самостоятельно, но безрезультатно. Наконец, мне удалось решить эту проблему, проверив различные веб-источники и связавшись с моим провайдером хостинга. Мои вопросы: «Как я могу изменить значение php memory_limit в совместном веб-хостинге?», «Как мне изменить значение php upload_max_filesize в совместном веб-хостинге?», «Как мне изменить значение php max_input_vars в общем веб-хостинге?» , «Как изменить значение php max_execution_time в совместном веб-хостинге?», «Как изменить значение php max_input_time в совместном веб-хостинге?» и многое другое, настраивая или изменяя файл php.ini или .htaccess. Я попытался их изменить, но возникли проблемы. Наконец, я связался с моим хостинг-провайдером, и выяснилось, что я установил свой php в native, они изменили его на php 5.6, вот их ответ:

«Ваш PHP был настроен на« native » режим, который означает, что вы не можете переопределить эти значения. Я изменил вас на «5.6», поэтому вам должно быть хорошо идти ».

После этого я подключил свой сайт через ftp Filezilla , также не забудьте сделать так, чтобы ваша служба ftp отображала скрытые файлы и ваш локальный компьютер, потому что файл .htaccess был скрыт в моем локальном ноутбуке и на моем веб-сайте. Он был доступен в папке public_html, я только что загрузил его и добавил следующие коды в конец файла, а затем загрузил его обратно на сервер:

php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300

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

Еще одна вещь, о которой я почти забыл упомянуть об установке ZipArchive в вашем общем сервисе веб-хостинга, мне удалось установить это требование, просто перейдя на php-настройки через мою cpanel, нажмите на расширения селектора php, а затем отметьте zip-раздел, это все.

Спасибо.

PS: Я открыт для хорошей практики, и если вы видите какую-либо плохую практику, пожалуйста, дайте мне знать, я постараюсь изменить их. Спасибо.

3
ответ дан garakchy 16 August 2018 в 04:12
поделиться

Чтобы найти файл ini, сначала запустите

php -i | grep -i "loaded configuration file"

. Затем откройте файл и измените

upload_max_filesize = 2M
post_max_size = 2M

, заменив 2M на нужный размер, например 100M.

У меня есть сообщение в блоге с немного дополнительной информацией http://www.seanbehan.com/how-to-increase-or-change-the-file-upload- размер-в-PHP-ини-файл-для-WordPress

37
ответ дан George 16 August 2018 в 04:12
поделиться
  • 1
    Он показывает файл как /etc/php5/cli/php.ini, но мой файл конфигурации /etc/php5/apache2/php.ini. Какой-то вводящий в заблуждение. – Fredrick Gauss 14 July 2016 в 06:53
  • 2
    Есть 2 файла php.ini ... и с этой командой в ответ он показывает, какой из них вы используете! Итак, вам нужно внести изменения, чтобы вступить в силу! – lewis4u 6 July 2017 в 15:26

У меня такая же проблема в прошлом .. и я исправил ее через .htaccess файл

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

Это пример, он отлично подходит для меня:

<IfModule mod_php5.c>
   php_value upload_max_filesize 40M
   php_value post_max_size 40M
</IfModule>

И это ссылка на php, если вы хотите понять больше. http://php.net/manual/en/configuration.changes.php

35
ответ дан Hossain Mahmood Tuhin 16 August 2018 в 04:12
поделиться
  • 1
    Если у вас есть возможности переопределения. – AbsoluteƵERØ 28 June 2013 в 22:26
  • 2
    Для поддержки PHP.7 добавьте тот же блок с помощью: & lt; IfModule mod_php7.c & gt; – مصطفی 5 January 2018 в 22:16
  • 3
    Это сработало для меня – Toni 18 May 2018 в 12:43

У меня была та же проблема. Я пробовал три способа, которые обычно предлагались:

  1. functions.php
  2. php.ini
  3. .htaccess

нет, если я решил свою проблему. Я использую godaddy и наткнулся на предложенное решение:

  1. получил веб-хостинг, затем Manage
  2. В разделе «Software select» Выберите «Версия PHP»
  3. Выберите «Переключиться на PHP-параметры», расположенные в правом верхнем углу таблицы в цвете шрифта: синий
  4. В нижней части большей части вы, вероятно, будете иметь upload_max_filesize = 2M
  5. Теперь, почувствуйте
  6. Обязательно нажмите кнопку «Сохранить»!
  7. Теперь перейдите на панель wp-admin, выберите Media, затем Add

Вуаля! Теперь у вас есть другой максимальный размер загружаемого файла:)

3
ответ дан nrmb 16 August 2018 в 04:12
поделиться

Три вещи, которые вам нужно проверить.

upload_max_filesize, memory_limit и post_max_size в файле конфигурации php.ini точно.

Все эти три ограничения настроек максимальный размер данных, которые могут быть отправлены и обработаны PHP.

Обычно post_max_size и memory_limit должны быть больше upload_max_filesize.


Таким образом, три которые вам нужно проверить, чтобы быть абсолютно уверенными.

0
ответ дан prosti 16 August 2018 в 04:12
поделиться

Возможно, это должен быть комментарий к @ seanb123 и @Fredrick Gauss, комментирующий его комментарий, но для меня в Drupal 8.1 файл, который мне нужно было изменить, был здесь:

/etc/php/7.0/apache2/php.ini

четыре других файла php.ini, включая одну мою систему под названием «Загруженный файл конфигурации» (php -i | grep -i «загруженный файл конфигурации») и тот, который найден на странице info.php, но ни один из них не помог. Я нашел правильный путь на сайте с 2012 года, где он сказал, что путь был устаревшим даже НАЗАД. Конечно, для PHP7 это немного отличается от того, что он сказал тогда: /etc/php5/apache2/php.ini, но концепция была такой же.

Возможно, это поможет какой-то в противном случае беспомощному schmuck, как я.

. Говоря, ответ на OP в моем случае будет заключаться в том, что кто-то с привилегиями администратора на ящике должен будет это сделать.

Сайт, который мне помог: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/

Это также рассматривается здесь: Ограничение размера файла импорта в PHPMyAdmin

1
ответ дан seizethecarp 16 August 2018 в 04:12
поделиться

У меня была та же проблема, и я создал файл .user.ini и поместил его в каталог, в котором находился сценарий загрузки. Внутри этого файла я установил эти два значения:

  upload_max_filesize = 40M

  post_max_size = 40M

, и он отлично поработал для меня!

53
ответ дан Tamil Selvan C 16 August 2018 в 04:12
поделиться

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

ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
1
ответ дан The EasyLearn Academy 16 August 2018 в 04:12
поделиться

ответы немного неполные, 3 вещи, которые вы должны сделать

в php.ini вашей установки php (обратите внимание: в зависимости от того, хотите ли вы это для CLI, apache или nginx, найти правильное php.ini для управления. Для nginx он обычно находится в /etc/php/7.1/fpm, где 7.1 зависит от вашей версии. Обычно для apache /etc/php/7.1/apache2)

post_max_size=500M

upload_max_filesize=500M

memory_limit=900M

или для установки других значений. Перезапустите / перезагрузите apache, если у вас установлен apache или php-fpm для nginx, если вы используете nginx.

0
ответ дан Toskan 16 August 2018 в 04:12
поделиться

Вы также можете использовать функцию ini_set (только для версии PHP ниже 5.3):

ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');

Как и в случае с @acme, в php 5.3 и выше это настройки являются директивами PHP_INI_PERDIR поэтому они не могут быть установлены с помощью ini_set. Вы можете использовать user.ini вместо этого.

45
ответ дан vzwick 16 August 2018 в 04:12
поделиться
  • 1
    В последних версиях PHP эти ini-settings - только PHP_INI_PERDIR , поэтому вы не можете установить их в своем скрипте. См. здесь для получения более подробной информации. – acme 6 March 2013 в 10:40
Другие вопросы по тегам:

Похожие вопросы: