Как увеличить допустимый размер загружаемого файла через 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 (это максимальный выделяемый размер памяти для обработки скрипта. Если у вас «тяжелые» файлы или с ними надо сделать достаточно ресурсоемкие действия, например распаковать большой архив базы данных, то выставляйте размер больше). В конце всех действий просто перезагрузить веб сервер.

Если не хочется менять настройки PHP для загрузки большого файла дампа базы данных, то можно загрузить дамп при помощи специальной консольной утилиты mysql_run_to_import_dumps.exe (для MS Windows). Делается это примерно так, в командой строке пишем следующее:
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 на локальном сервере не составит никакого труда.

Поделиться!
Tags: ,

49.66MB | MySQL:51 | 0,283sec