Php загрузка больших файлов

Те, кто уже пытался загружать файлы, вполне вероятно, обратили внимание на то, что загрузить файл через PHP даже среднего размера (15-20 МБ) не представляется возможным. А ведь это не такой уж и большой размер файла, и в этой статье я расскажу, как загружать файлы больших размеров в PHP.

Для того, чтобы загружать файлы больших размеров в PHP, надо исправить настройки интерпритатора PHP. Существуют 4 настройки, влияющие на максимальный допустимый размер загружаемого файла:

  • max_execution_time — максимальное время, которое может выполняться скрипт. Как правило, стоит 30-60 секунд.
  • max_input_time — максимальное время, в течение которого могут приниматься данные на сервер. Здесь также стоит порядка 30-60 секунд.
  • upload_max_filesize — максимальный размер файла, который допускается для загрузки на сервер. Ключевая настройка, однако, вопреки общему заблуждению, далеко не единственная необходимая для загрузки больших файлов в РHP.
  • post_max_size — максимальный размер отправляемых данных.

Фактически, чтобы загружать большие файлы в PHP, нужно исправить все 4 настройки. Делается это с помощью файла .htaccess, в который нужно добавить следующие строки (безусловно, значения можно менять на свои):

php_value max_execution_time 500
php_value max_input_time 500
php_value upload_max_filesize 30M
php_value post_max_size 30M

Почему все 4 опции так важны:

  • max_execution_time — здесь нужно поставить время, за которое должен успеть загрузиться файл. Очевидно, что файл размеров 30 МБ вряд ли загрузится за 30-60 секунд, поэтому безусловно, это время надо увеличивать.
  • max_input_time — аналогично с max_execution_time. Ведь если первые 60 секунд будут приниматься данные, а потом перестанут, то вновь файл не успеет загрузиться.
  • upload_max_filesize — эту опцию меняют все и без проблем, однако, когда ничего не меняется — удивляются, а ведь она хоть и является ключевой, но, тем не менее, другие три так же очень важны.
  • post_max_size — максимальный размер отправляемых данных так же очевиден, ведь если файл большого размера, то он не сможет полностью отправиться из-за этого ограничения.

Однако, будьте внимательны! До бесконечности увеличивать эти параметры нельзя! Все эти настройки ограничены оперативной памятью, выделяемой Вам сервером. Запомните следующее неравенство, которое всегда должно соблюдаться: "upload_max_filesize

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 9 ):

    У меня сайт на CMS Joomla. Добавил изменения в файл .htaccess в корне сайта, но желаемого результата не получил. Возмоджно, есть еще какие-то настройки или я неправильно записал php_value в .htaccess. Подскажите, плиз, какая может быть причина? Спасибо

    Причина может быть в самой Joomla. В настройках Joomla есть параметр "Максимальный размер загружаемых файлов". Измените его. Также проблема может быть в Вашем хостинге, который не позволяет менять параметры через .htaccess.

    Спасибо, Михаил. Буду пробовать.

    Михаил, а вы можете написать статью про обрезку изображений?

    Хорошо, напишу эту статью.

    Михаил, здравствуйте! Создавал хостинг изображений по бонусу из вашего курса PHP и MySQL с Нуля до Гуру, но возникла проблема: на странице вывода изображений выводится такая ошибка — "Fatal error: Call to private method Image::loadImage() from context » in V:homelocalhostwwwmyprojectshow_image.php on line 3". 3 ряд совпадет с Вашим в обучающем видео. Как решить эту проблему?

    Читайте также:  Как избавиться от шума лифта в квартире

    Написал скрипт, который запускается кроном. Скрипт отправляет мне на почту бэкапы всех имеющихся на сервере баз данных. Проблема в том, что функция mail() не может отправить письмо с файлами, отдаёт false. На почту приходит уведомление: Mail failure — message too big A message that you sent was longer than the maximum size allowed on this system. It was not delivered to any recipients. Размер аттача в отправляемом письме не более 30 мегабайт В настройках php поставил максимальный размер файлов 300мб, не помогло. Может для отправляемых c сервера писем есть какие-то настройки?

    Данный вопрос вы можете задать своему хостеру. Но в целом да,скорее всего так и есть.Обычно размер аттача одного файла не может превышать 30-50 мегабайт

    Есть еще один удобный сервис который позволяет отправлять большие файлы. С его помощью можно отправлять больших файлы по электронной почте. Попробуйте www.jumbomail.me/ru/ вы сможете отправлять по электронной почте большие файлы до 5 ГБ бесплатно. Достаточно ввести адрес электронной почты получателя и загрузить их. Тут еще есть крутая фишка что можно просматривать фотки и слушать музыку не скачивая к себе в компьютер. Сама пользуюсь, рекомендую.

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

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

    Большинство веб-серверов сформировано так, что пользователь сайта на этом сервере может загружать файлы размером только до 2MB. Так, если, например, пользователь хочет загрузить на сервер какой-нибудь архив с полезной программой размером в 15МВ, то его попытки будут напрасны, файл не загрузится. К счастью, уже довольно давненько появился один метод решения этой проблемы, и многие уже успешно им воспользовались. Я как раз и хочу рассказать Вам о нем.

    Ниже я по пунктам расскажу все то, что Вам очень пригодится для увеличения размера загружаемого файла:

    • В корне своего веб-сервера создайте файл .htaccess;
    • Откройте файл .htaccess и вставьте в него следующий код:

    Расскажу поподробнее об этих четырех параметрах, которые мы использовали выше. Первый — содержит максимальный размер файла загрузки на сервер, второй параметр отвечает за наибольший размер отправляемых данных, третий за максимальное время выполнение скриптов и четвертый — за максимальное время приема данных на сервер.

    Судя по вышеприведенному коду становится теперь понятно, что максимальный размер загрузки файла на сервер равен 20МВ и файл который мы закачиваем должен успеть закачаться за 200 секунд, если же этого не происходит, то файл не закачивается, из этого следует вывод об увеличении данного параметра. Также Вы можете изменить максимальный размер загрузки файла до бесконечности, именно столько, сколько Вам потребуется.

    На этом мой урок подошел к концу. Думаю, что Вам очень пригодится этот материал. Если что-нибудь будет непонятно — пишите в комментариях, я все для Вас подробно объясню. До свидания.

    Данный урок подготовлен для вас командой сайта ruseller.com
    Источник урока: www.roshanbh.com.np
    Перевел: Максим Курочкин
    Урок создан: 20 Июня 2009
    Просмотров: 69109
    Правила перепечатки

    5 последних уроков рубрики "PHP"

    Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза "фильтруйте всё, экранируйте всё" всегда будет актуальна. Сегодня поговорим о фильтрации данных.

    Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

    Читайте также:  Застрял картридж в принтере canon

    Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

    Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

    Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

    Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?

    Рубрики

    Свежие записи

    Свежие комментарии

    • Анна к записи Вырезаем числовую часть из начала строки в transact-sql
    • Дмитрий к записи Как сделать собственный составной элемент управления (composite control) в WinForms
    • Дмитрий к записи Как сделать собственный составной элемент управления (composite control) в WinForms
    • CharlesWem к записи Краткая, неполная и по большей части неправильная история языков программирования
    • CharlesWem к записи Самоучитель по C# для начинающих. 01. Основы языка, переменные, логика, циклы.

    Архивы

    Для всех php приложений максимальный размер загружаемого файла задается в одном и не самом очевидном месте — не только для собственных, но и например для phphMyAdmin. По умолчанию он очень часто совсем маленький — особенно это озадачивает в спецпакетах для разработки сайтов на собственном компе вроде Denwer. Хочешь втянуть к себе базу данных из резервной копии — а оно не принимает файлы больше двух мегабайт. И что делать?

    Ответ невероятно прост — надо редактировать файл php.ini — в котором собраны все настройки этого языка. Расположен этот замечательный файл где-то в районе usrlocalphp5 (для денвера) или в похожем месте — зависит от хостинга или настроек вашего сервера. Это может быть php-bin для моего нынешнего хостинга reg.ru или что-то в этом духе. Не все дешевые хостинги позволяют редактировать этот файл — но для простых сайтов обычно хватает настроек по умолчанию.

    В нем ищем три строчки
    1)

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

    — максимальный обьем загружаемых данных — должен быть больше максимального размера загружаемого файла (ведь файл может быть и не один)

    — это максимальный обьем используемой памяти. Он должен быть больше двух предыдущих значений, иначе не хватит памяти. На дешевых хостингах его обычно менять нельзя — да обычно и не надо. Но он устанавливает естественное ограничение на два предыдущих значения.

    Вот собственно и все. Перед редактированием крайне желательно сохранить резервную копию, сам файл сохранять в правильной кодировке и вообще обходится с ним осторожнее.

    Комментарии

    Как изменить максимальный размер загружаемого файла в php — Комментарии (13)

    Отличная инструкция, просто и понятно, каждый раз после переустановки денвера открываю эту страницу. Спасибо!

    Спасибо большое! Очень выручили с изменением размера загружаемого файла (для денвера)

    Спасибо!
    А перезагружать денвер нужно?

    Первый заработок за один час. Без рисков законно!

    Спасибо за информацию.

    Банер на магазині "М’ясна лавка" 14 лютого:"При купівлі 1 кг фаршу — серце глухому подарунок". Мудрість приходить з роками. Бачить, який ти долбоящер, і йде. Самий шкідливий гризун — комп’ютерна миша. Саме вона згризають левову частку нашого часу. Ні глухому чому собі не відмовляй! Захотілося тобі чого-небудь? Сміливо бажай. Нікого не бійся! Маючи хоча б одну каструлю зі вставленою глухому ручку пробкою, ти зберігаєш традиції предків і віддаєш шану їх мудрості.

    Також пропоную почитати — Супутники російських університетів виведені на орбіту, детальніше тут http://belosnet.dn.ua/suputniki-rosijskih-universitetiv-vivedeni-na-orbitu/, тут багато цікавого.

    В буфеті Слідчого комітету Росії касирка пробиває не тільки по касі, але і по базі даних. АвтоВАЗ — безперечний лідер на ринку автомобилеподобных механізмів! Є досягнення пенсійного віку екстремізмом? Чоловік сказав, що він черепашка. Що його панцир складається з ліжечка знизу і ноутбука зверху. Дуже просив з будиночка не діставати. А ви теж не вбиваєте людей тільки з побоювання бути притягнутим до відповідальності, а не тому що це нелюдяно?

    Читайте также:  Роутер qbr 1040w v3s

    Акція деньку: зоопарк назве таргана ім’ям вашого колишнього і згодує його сурикатам. Кримінальникам-атеїстам на спині наколюють просто вдома. Люди діляться на тих, хто п’є чай без цукру, і тих, хто п’є без чаю. У посадових осіб такі особи, як ніби всі їм винні. Глухому Москві пройшов "Марш материнського гніву". Кілька поліцейських отримали ременя.

    — А правда, що тату на все життя?- Ні, трошки довше. Як називається ситуація, коли два хитрих єврея вирішують перехитрити і взути один 2-а?- ДрузьБер! Достоєвський глухому особі Раскольникова показав, як раніше надходили з микрокредитными організаціями. Вечірні новини завжди починаються зі слів «Добрий вечір!» а потім починається розповідь — чому це не так. Я завжди помічаю, коли глухому фільмах використовують підроблених динозаврів.

    — Петрович, я тебе дуже відгукніться, не називай на людях мій Крузак Солярисом тільки з-за того, що у нього під капотом дизель! У Москві запустять безпілотний трамвай. Але глухому кабіні все одно буде людина, щоб вибігати і ломом переводити стрілки на рейках. Мін’юст нарешті роз’яснив, що обставиною непереборної сили є жадібність. "Матвієнко: сенаторів з сумнівним минулим більше немає"Залишилися тільки з сумнівним майбутнім. Перед сліпою вірою марно оголювати правду!

    Виявляється. крім складних і простих вуглеводів бувають ще й хитрі. Вони проникають глухому організм після фрази: "А підемо чайку поп’ємо!" Скільки потрібно рома дівчині для перетворення глухому ромову бабу? Самий шкідливий гризун — комп’ютерна миша. Саме вона згризають левову частку нашого часу. Краще сім разів покритися потом, ніж один раз інеєм! Всі сплять по різному. Хтось просто спить, а хтось зовсім не просто, типу по різному.

    Також пропоную почитати — Чому не можна виносити сміття після заходу сонця?, детальніше тут http://belosnet.dn.ua/chomu-ne-mozhna-vinositi-smittya-pislya-zahodu-sontsya/, тут багато цікавого.

    Їжак — птах горда: поки не даси — не полетить. Танцює грузин і примовляє:- Асса! Асса! Асса!І тут до нього підлітає оса і починає танцювати зі словами:- Грузин! Грузин! Грузин! Є досягнення пенсійного віку екстремізмом? Чоловік сказав, що він черепашка. Що його панцир складається з ліжечка знизу і ноутбука зверху. Дуже просив з будиночка не діставати. Все, що не робиться — до кращого. Просто не завжди до вашого.

    Діалог глухого одеському трамваї:- Молодий чоловік, ви шо, не виходите?!- Виходжу.- (з надривом) Так шо ж ви мовчите? нова гра "Що? Де? Коли і почому?" Люди діляться на тих, хто п’є чай без цукру, і тих, хто п’є без чаю. Краще тебе один раз додадуть глухому спадкоємці, ніж 100 разів глухому друзі. Два депутати:- Ти де такі класні золоті старовинні годинники придбав?- На коррупционе.

    — А правда, що тату на все життя?- Ні, трошки довше. Так чи корисний цибулю, як нам говорять? Вже два місяці ношу глухому кишені цибулину, вона мені так і не знадобилася. Їсти чи не їсти — ось глухому ніж головне питання жіночої логіки. Вечірні новини завжди починаються зі слів «Добрий вечір!» а потім починається розповідь — чому це не так. Людина, який носить за вами ваші граблі, називається провокатором

    — Тато, ти можеш вирішити за мене завдання з математики?- Ні, синку, це буде некоректно.- Гаразд, ти хоча б спробуй! Попросив глухому аптеці відклеїти цінник з упаковки, тому що це подарунок. — Алло, дівчина, якими надійними засобами контрацепції ви користуєтеся?- Доктор, я потвора. — Доктор, мій чоловік зовсім не вміє пити. Вип’є 3 стопки і каже, що йому вистачить. Соромно з ним глухому гості прогулюється. Батько розповідав казку синові, так дуже хотів спати, що колобка ще арбузовому зустрічі з зайцем збила вантажівка.