Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
Теми
Уроки
Хакі

Працюючи на WordPress над будь-яким проектом, в якому можна завантажувати різні файли, будь то відео, CSV-файли, зображення або інший тип даних, ви рано чи пізно зіткнетеся з ситуацією, де вам потрібно буде визначити, чи не є розмір файлу занадто великим для завантаження ресурс.

Відображаємо помилку, якщо файл перевищує допустимий розмір під час завантаження на WordPress

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

Те, що вважається «занадто великим» може означати таке:

  • Розмір файлу перевищує допустимий (більше, ніж може прийняти сама система сайту)
  • Час очікування спливає при дуже тривалому завантаженні файлу через його розмір
  • Файлова система не має достатньо місця
  • Інше

У будь-якому з цих випадків є дві речі, які вам потрібно буде зробити:

  1. Визначити, чи не перевищує файл допустимий розмір для завантаження
  2. Показувати помилку для користувача ще до початку завантаження

Ви самі неодноразово стикалися з подібною ситуацією і не могли розібратися, чому сервер не приймає ваш файл, оскільки не було відповідного повідомлення про помилку, чи не так?

Розмір файлу перевищує допустимий на WordPress

Як згадувалося, причина, через яку файл може бути «надто великим» залежить від багатьох змінних.

Для цього нижче наведено приклади, які стосуються абсолютно кожної з можливих причин. Існує загальне налаштування, здатне допомогти при будь-якій з них. У наведеному нижче коді ми розглянемо приклад для будь-якої з ситуацій.

1. Готуємо висновок повідомлення

Приблизно так виглядатиме наш код повідомлення на WordPress:

<?php
class Acme_File_Importer {

	public function __construct() {
		add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
	}
	
	public function display_admin_notice() {
	  // TODO
	}
	
}

Він визначає клас за допомогою імені хука, визначеного в конструкторі та виконуваної функції у цьому класі. У нашому випадку нам потрібно буде зробити деяку роботу з функцією хука, щоб визначити, чи завантажується файл «занадто великим».

2. Перевірка розміру файлу під час завантаження

Зауважте, що ця функція передбачає, що у вас вже є відповідна програма для визначення наявності файлу в рядку завантаження $_FILES.

У цьому випадку користувач надав файл для завантаження, і ми зробимо таке:

<?php

/**
 * Determines if the given file is too large for the current environment.
 *
 * @return    bool      True if the file is too large; otherwise, false.
 * @access    private
 */
private function file_is_too_large() {

  // Read the contents of the file
  $file_contents = file_get_contents( $_FILES['acme_uploaded_file']['tmp_name'] );
  $is_too_large = false;
  
  /* Use your own metric for determining if the file is too large or not
   * and then set a boolean value depending on that result.
   */
   
  return $is_too_large;

}

Наявність функції приватний визначення розміру файлу сприяє кращої читабельності коду.

Мається на увазі, що використання вищевказаного коду допоможе нам створити код, інформація в якому звучатиме так: «Якщо розміри файлів занадто великі, тоді покажіть повідомлення про помилку», що ми розглянемо наступного кроку.

3. Відображення помилки (або завантаження файлу)

Нарешті ми оновлюємо функцію хука, яку ми вже визначили для використання функції приватний, відображаємо помилку, або продовжуємо завантаження файлу:

<?php

/**
 * Renders the appropriate message box based on how the import performs.
 */
public function display_admin_notice() {

  if ( $this->file_is_too_large() ) {

    /* This would be cleaner if it were an external file that was 
     * brought in via an include_once call, but this is just for
     * example :).
     */
    $html = '<div class="error">';
      $html .= '<p>You are attempting to upload a file that is too large.</p>';
    $html .= '</div>';

    echo $html;

  }

}

Зверніть увагу, що код перевіряє, чи файл занадто великий чи ні. І якщо так, то показує помилку. Якщо ні – продовжує його завантаження.

Це один із способів дізнатися, чи підходить той чи інший файл для завантаження на WordPress. Використовуйте цей метод у такому вигляді, як описано вище, або створюйте свої методи на його основі.

Джерело: tommcfarlin.com
inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, що спеціалізується на створенні сайтів WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

Коментарі до запису: 0

Додати коментар або відгук