Висновок повідомлення про помилку, якщо завантажуваний файл є занадто великим у WordPress, все про
Який файл вважатиметься «надто великим»? Це залежить від кількох факторів:
- Розмір файлу більший, ніж ви хочете приймати (або приймає файлова система)
- При завантаженні файлу відбувається PHP таймаут (через розмір файлу)
- Файлова система не має достатнього місця
- І т.д.
Незалежно від подій, що відбуваються, ви повинні бути в змозі зробити наступне:
- Визначити, чи файл вписується в обмеження системи (незалежно від обмежень).
- Вивести на екран повідомлення про помилку перед тим, як відбудеться завантаження.
Навряд чи це буде вважатися шикарним досвідом взаємодії, якщо при спробі завантажити щось за межами обмежень жодних повідомлень про помилку не з'явиться.
Файл занадто великий для WordPress
Як було зазначено вище, те, як ви визначаєте, чи файл занадто великий для даної системи, залежить від численних змінних оточення.
З цієї причини я не можу вам запропонувати приклад, який покривав би абсолютно всі існуючі сценарії, однак є загальний план дій, який ви можете дотримуватися, внісши лише необхідні зміни в реалізацію залежно від вашого варіанту використання. Таким чином, у наведеному нижче прикладі я покажу загальний випадок структурування коду для обслуговування сценарію із завантаженням занадто великих файлів.
1. Задаємо хук повідомлень.
Далі йде звичайний ООП-код для WordPress:
Це звичайне визначення класу, у якому ім'я хука в конструкторі, а актуальна функція визначено у класі. У нашому випадку нам потрібно буде трохи попрацювати над функцією, що підчіпляється, щобвизначити, чи файл занадто великий.
2. Перевіряємо розмір файлу на етапі завантаження
Зверніть увагу: наступна функція передбачає, що ви вже маєте правильну обробку, що дозволяє визначити, чи заповнений масив $_FILES. Тобто, якщо користувач намагається завантажити файл, але нічого не ставить, це вже окремий випадок для обробки.
У нашому випадку користувач надав файл, тому ми робимо таке:
Наявність private функції, що обчислює розмір файлу (є й інші способи перевірки типу та розміру файлу, але це виходить за рамки цієї статті), робить код набагато читальнішим.
Таким чином, код, наведений вище, дуже легко читається: «якщо файли занадто великі, то в такому разі виводимо на екран повідомлення про помилку».
Я не говорю, що це – найкращий спосіб завдання перевірки, але я дійсно вважаю, що коли справа доходить до підтримки коду – тобто. читання його та роботи з ним через місяці чи роки – такий підхід буде більш простим.
3. Виведення помилки (або завантаження файлу).
Нарешті, ми оновлюємо підчеплену функцію, визначену вище, щоб поліпшити функцію private, вивести повідомлення про помилку або почати завантаження файлу:
У будь-якому випадку, це стандартна установка, якою я користуюся при необхідності перевірити, чи завантажується файл занадто великим. Ваш підхід може бути – і, швидше за все, буде – дещо іншим, проте мати загальний фундамент для проведення операцій завжди є корисним.