Определение и использование функции WP_MAX_UPLOAD_SIZE()

WP_MAX_UPLOAD_SIZE() │ WP 2.5.0

Функция WP_MAX_UPLOAD_SIZE() определяет максимальный размер файла, который можно загрузить, согласно настройкам php.ini.

Как это работает

Функция использует вспомогательную функцию wp_convert_hr_to_bytes(), которая преобразует строковые значения в байты. Это позволяет конвертировать настройки, такие как "8M" в число байтов.

Использование:
wp_max_upload_size();

Скорость выполнения:

  • 1 раз — 0.0000138 сек (очень быстро)
  • 50000 раз — 0.05 сек (почти мгновенно)

Хуки функции

  • upload_size_limit: используется для изменения лимита на размер загружаемого файла.

Возвращаемое значение

Функция возвращает целое число (int), которое является максимальным допустимым размером файла для загрузки.

Примеры использования

Пример 1: Ограничение размера файла для формы

Предположим, у нас есть форма, где мы добавили максимальный допустимый размер файла в атрибут data-maxfsize:

Теперь мы можем использовать скрипт на JavaScript, чтобы проверять размер файла:

const fileInput = document.getElementById('file-input');
const fileResult = document.getElementById('file-result');
const fileSubmit = document.getElementById('file-submit');

const maxFileSize = parseInt(fileInput.dataset['maxfsize']);

fileInput.addEventListener('change', function() {
    if (fileInput.files.length > 0) {
        const fileSize = fileInput.files.item(0).size;

        if (maxFileSize >= fileSize) {
            fileSubmit.disabled = false;
        } else {
            fileResult.innerHTML = Пожалуйста, выберите файл менее ${ Math.floor(maxFileSize / (1024 * 1024)) } МБ.;
        }
    }
});

Пример 2: Ограничение максимального размера загружаемых файлов

Допустим, наш сервер позволяет загружать файлы размером до 300 МБ. Нам необходимо, чтобы менеджеры в WordPress не могли загружать файлы больше 10 МБ. Для этого мы можем использовать фильтр upload_size_limit:

add_filter('upload_size_limit', static fn() => MB_IN_BYTES * 10);

Пример 3: Что возвращает функция

Вы можете проверить какое значение возвращает wp_max_upload_size:

var_dump(wp_max_upload_size()); // Вывод: int(10485760)

Изменения в версии

  • Сначала введено: с версии 2.5.0.

Код функции

function wp_max_upload_size() {
    $u_bytes = wp_convert_hr_to_bytes(ini_get('upload_max_filesize'));
    $p_bytes = wp_convert_hr_to_bytes(ini_get('post_max_size'));

    /**
     * Фильтры максимального размера загрузки, разрешенного в php.ini.
     *
     * @since 2.5.0
     *
     * @param int $size    Максимальный размер загрузки в байтах.
     * @param int $u_bytes Максимальный размер загружаемого файла в байтах.
     * @param int $p_bytes Максимальный размер POST-данных в байтах.
     */
    return apply_filters('upload_size_limit', min($u_bytes, $p_bytes), $u_bytes, $p_bytes);
}

Связанные функции

Некоторые функции, связанные с загрузкой и скачиванием файлов:

  • download_url()
  • media_handle_sideload()
  • media_handle_upload()
  • media_sideload_image()
  • size_format()
  • wp_check_filetype()
  • wp_check_filetype_and_ext()
  • wp_convert_hr_to_bytes()
  • wp_get_upload_dir()
  • wp_handle_sideload()
  • wp_handle_upload()
  • wp_upload_bits()

Эта информация поможет вам лучше понять, как работает функция wp_max_upload_size() и как с её помощью управлять загрузками в WordPress. Если у вас есть вопросы, не стесняйтесь спрашивать!

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *