Максимальный размер загружаемого файла через PHP

Часто приходится сталкиваться с проблемой превышения допустимого размера загружаемого файла, с помощью протокола прикладного уровня HTTP или защищенного аналога HTTPS, при попытке загрузить на сервер файл большого размера методами GET или POST, потому, что в настройках PHP точно указан какой максимальный размер файла можно загрузить через форму и он явно ниже того, который вы хотите загрузить.

Так же с подобной проблемой часто сталкиваются веб мастера при попытке «поднять» большую по объёму базу данных стандартными средствами программного обеспечения для работы с БД — phpMyAdmin в работе с локальным серверным набором Denwer. Обычно для подобных нужд используют дополнительные программные средства наподобие sypex dumper и ему подобных. Но ведь мы же хотим сделать через phpMyAdmin, поэтому придется немного поднастроить конфигурацию php.  Кстати все ваши изменения можно наглядно увидеть на вкладке ipmort в графе разрешённого размера файла БД. Обычно, по умолчанию, там написано 2 мб, после ваших действия эта цифра должна измениться автоматически.

Что бы это изменить делаем следующие действия.

Например если импортируется с phpmyadmin на денвере, то увеличить ограничения в php.ini. Находится он по следующему локальному адресу:

Z:\usr\local\php5\php.ini

найти

post_max_size = 2M

(вместо 2M может стоять другая цифра, поэтому ищите по названию параметра)
и заменить к примеру на

post_max_size = 2000M

(Это максимальный размер файла загружаемого на сервер методом POST, тут главное не переусердствовать)

найти

upload_max_filesize = 2M

и заменить на

upload_max_filesize = 2000M

(это максимальный размер загружаемого файла)

ну и лимит времени обработки скрипта тоже можно увеличить

max_execution_time иmax_input_time

например поставить

max_execution_time = 18000

(это максимально допустимое время выполнения скрипта, при работе с большими объёмами данных и на локальном хосте можно выставить и побольше)

max_input_time = 18000

(это время за которое PHP скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Время измеряется от момента, когда сервером получены все данные, до момента, когда скрипт начинает выполняться. Не столь важная директива для целей преследуемых данной статьёй)

и памяти можно увеличить

memory_limit = 128M

(это максимальный выделяемый размер памяти для обработки скрипта. Если у вас «тяжелые» файлы или с ними надо сделать достаточно ресурсоемкие действия, например распаковать большой архив базы данных, то выставляйте размер больше).

и в конце всех действий просто перезагрузить веб сервер.

Или с командной строкой

Z:\usr\local\mysql5\bin\mysql_run_to_import_dumps.exe -uЮЗЕР -pПАРОЛЬ -hlocalhost --default-character-set=utf8 --force БАЗА < Z:\db_base_file.sql

Вот собственно и все не хитрые методы, которые помогут вам всячески увеличить допустимый размер загружаемого файла. Теперь импортировать базу данных размером более 100 мб через phpMyAdmin на локальном сервере не составит никакого труда.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *