Описание функции wp_handle_upload()
Функция wp_handle_upload() обрабатывает загрузку файлов, проверяет их на ошибки и обеспечивает правильное сохранение. Она используется для обработки файлов, загружаемых пользователями через формы или API. Функция автоматически выполняет валидацию, проверку MIME-типа и создание метаданных для загружаемых файлов.
Эта функция часто используется в плагинах и темах для обработки пользовательских загрузок.
Параметры
$file
Тип: array
Обязательный: Да
Описание: Массив данных о загружаемом файле, полученный из $_FILES
Возможные значения:
name: Имя файла
type: MIME-тип
tmp_name: Временное имя файла на сервере
error: Код ошибки
size: Размер файла в байтах
$overrides
Тип: array
Обязательный: Нет
По умолчанию: array()
Описание: Массив параметров для настройки поведения загрузки
Возможные значения:
test_form: 1,
unique_filename_callback: Функция для генерации уникального имени файла
Возвращаемое значение
Тип: array|WP_Error
Описание: Массив данных о загруженном файле или объект WP_Error в случае ошибки
Возможные значения:
• Массив с данными о загруженном файле (url, path, type и т.д.)
• WP_Error при ошибке загрузки
Примеры использования
Простой пример обработки загрузки файла
$file = $_FILES['upload_file'];
$result = wp_handle_upload($file, array('test_form' => false));
if (isset($result['error'])) {
echo 'Ошибка: ' . $result['error'];
} else {
echo 'Файл загружен: ' . $result['url'];
}
Загрузка файла выполняется без проверки формы
Загрузка файла с кастомной функцией для уникального имени
$file = $_FILES['upload_file'];
$args = array('unique_filename_callback' => 'wp_unique_filename');
$result = wp_handle_upload($file, $args);
Используется функция wp_unique_filename для генерации имени
Проверка на наличие ошибок после загрузки файла
$file = $_FILES['upload_file'];
$result = wp_handle_upload($file);
if (is_wp_error($result)) {
echo 'Ошибка: ' . $result->get_error_message();
} else {
echo 'Файл загружен: ' . $result['url'];
}
Используется is_wp_error для проверки результата
Безопасность
Валидация входных данных: Проверка входных данных на наличие ошибок и корректности
Санитизация: Функция автоматически очищает данные перед обработкой
Рекомендации: Проверяйте разрешенные MIME-типы и размеры файлов
— Связанные функции
Фильтрует данные файла перед загрузкой
Обрабатывает загрузку файла, который уже существует на сервере
— Хуки
Фильтрует данные файла перед загрузкой
Фильтрует результаты после обработки загрузки
— Примечания
– Ограничения
Не поддерживает загрузку файлов с недопустимыми MIME-типами
– Частые проблемы
- Ошибка при загрузке из-за превышения максимального размера файла
- Проблемы с правами доступа к директории загрузки