Завантаження файлів великих розмірів в php

Завантаження файлів великих розмірів в PHP

Відео: php для початківців: Робота з директоріями і файлами, урок 27

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

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

Відео: Створення сайту на PHP і MySQL | Безпечне завантаження файлів на сервер

  • 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 lt; post_max_size lt; memory_limit". Ось тому не можна поставити розмір файлу більше оперативної пам`яті. Можливо, Ви запитаєте чому? Тут все дуже просто: перш ніж файл з`явиться на сервері, він цілком поміщається в оперативну пам`ять. І тому не можна завантажити файл розміру більшого, ніж оперативна пам`ять, що виділяється сервером. Сподіваюся, зрозуміло пояснив. А розмір оперативної пам`яті складає, в середньому, 64 - 128 МБ. І з цього розміру Ви можете вже остаточно зрозуміти, наскільки великі файли Ви маєте право завантажувати через PHP. Безумовно, якщо у Вас буде виділений сервер, то Ви можете поставити будь- 16 ГБ оперативної пам`яті, якщо, звичайно, до нього додається стільки пам`яті взагалі. А на звичайним хостингу, таких розмірів не буває, тому там завжди є великі обмеження на розмір файлів через PHP. І завжди пам`ятайте: межа на розмір файлів існує абсолютно завжди і на будь-якому сервері!

Поділися в соціальних мережах:

Схожі
Переміщення файлу підкачки в windows vistaПереміщення файлу підкачки в windows vista
Youtube downloaderYoutube downloader
Безпека php на серверіБезпека php на сервері
Як відкрити великий файл в linuxЯк відкрити великий файл в linux
Як заборонити зміну розмірів textareaЯк заборонити зміну розмірів textarea
Способи передачі великих файлів в мережі інтернетСпособи передачі великих файлів в мережі інтернет
Як створити файл .htaccessЯк створити файл .htaccess
Створення стислих файлів формату .cab в операційних системах windows.Створення стислих файлів формату .cab в операційних системах windows.
Як імпортувати бази даних великих розмірів?Як імпортувати бази даних великих розмірів?
Помилка 2006 чи server has gone awayПомилка 2006 чи server has gone away
» » Завантаження файлів великих розмірів в php