Изменение максимального размера загружаемого файла



у меня есть сайт, размещенный на компьютере у меня нет доступа. У меня есть форма загрузки, позволяющая людям загружать mp3-файлы размером до 30 МБ. Мой скрипт на стороне сервера выполняется на PHP.



каждый раз, когда я пытаюсь загрузить файл, я получаю сообщение об ошибке, утверждая, что файл превышает максимально допустимый размер, поэтому мне нужно увеличить размер. Мои исследования в интернете предложили изменить .htaccess файл, к которому у меня нет доступа, так что это не будет работать. Другие предположили, что я должен добавить пользовательский php.ini файл в мой корень, который не работает. Есть еще предложения?

730   14  
PHP

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.Ини, тебе не повезло. Вы не можете изменить эти значения во время выполнения; загрузка файла больше, чем значение, указанное в php.ini не будет выполнен к тому времени, когда выполнение достигнет вашего вызова ini_set.

посмотреть описание ядро php.ini директивы.

вы можете изменить его с помощью .

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

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

php_value upload_max_filesize 40M
php_value post_max_size 42M

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

  upload_max_filesize = 40M

  post_max_size = 40M

и это отлично сработало для меня!

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

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

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

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

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

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

upload_max_filesize = 2M
post_max_size = 2M

замена 2М с размером вы хотите, например, 100м.

у меня есть сообщение в блоге о с немного больше информации тоже http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-file-for-wordpress

у меня такая же проблема в прошлом .. и я исправил это через .htaccess file

когда вы вносите изменения в PHP configration через .htaccess вы должны поставить конфигурации в IfModule - тег, другие, что Внутренняя ошибка сервера возникнет.

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

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

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

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

содержание .user.ini было:

upload_max_filesize = 40M
post_max_size = 40M

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

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

"ваш PHP был установлен в "родной" режим, что означает, что вы не можете переопределить та ценность. Я изменил тебя чтобы просто "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

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

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

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

спасибо.

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

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

  1. функции.php
  2. php.ini
  3. .htaccess

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

  1. надо Хостинг, потом управление
  2. под программа выберите выберите PHP версия
  3. выберите переключиться на PHP Options найдено в правом верхнем углу таблицы в цвете шрифта: синий
  4. на нижней большей части, вы, вероятно, будете иметь upload_max_filesize = 2M
  5. Теперь, не стесняйтесь изменить его
  6. обязательно нажмите кнопку сохранить!
  7. Теперь перейдите в панель wp-admin, выберите СМИ затем добавить

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

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

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

Я модом, наверное, четыре других PHP.ini-файлы, включая тот, который моя система называла "загруженный файл конфигурации" (php -i | grep -i "loaded configuration file") и нашли на info.php страница, но никто из них не помог. Ключ к обнаружению правильного пути был найден на сайте с 2012 года. Они сказали, что путь "/etc/php5/apache2/php.ini" был осужден еще тогда, но это дало мне ключ, где его найти. Для PHP7 это немного отличается от PHP5, но концепция та же.

может быть, это поможет некоторым другим беспомощным придуркам вроде меня.

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

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

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

изменить: полный текст моей записки самому себе:

чтобы изменить максимальный размер загрузки, отредактируйте upload_max_filesize и [если нужно?] post_max_size в /etc/php/7.0/apache2 / php.ini (или in более старые версии: /etc/php5/apache2 / php.ini)

/ etc / init.D / apache2 restart

РЕДАКТИРОВАТЬ ЕЩЕ РАЗ: поскольку вы импортируете большие файлы, вам может потребоваться изменить тайм-аут для их обработки. В моем случае файл с именем " config.по умолчанию.РНР" встретился в /usr/share/phpmyadmin/libraries/config.default.php переменная $cfg['ExecTimeLimit'] = 300; Например, я изменил свой на 900 для огромного импорта. После этого вам нужно перезапустить apache

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

Я работаю на localhost и с помощью MAMP.

вот решений;

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

добавить

--max_allowed_packet=168435456

до

...\MAMP\bin\startMysql.sh

2. Если у вас есть мой.ini

под

[mysqld]

добавить

max_allowed_packet=100M

готово!

много раз я замечал, что сайт с общим хостингом не позволяет изменять настройки в 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);

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

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

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

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


Итак, три переменные в общей сумме вы должны проверить, чтобы быть абсолютно уверенным.

ответы немного неполные, 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.

Comments

    Ничего не найдено.