Функция wp_upload_bits()
в WordPress используется для создания файла в папке загрузок на основе переданного контента. В отличие от других функций загрузки, она не перемещает существующие файлы, а создает новый файл с содержимым, указанным в параметре $bits
. Эта функция полезна для создания файлов программно, например, при обработке изображений или данных, полученных от пользователя через формы.
wp_upload_bits( string $name, null|string $deprecated, string $bits, string|null $time = null ): array
Параметры:
$name
(строка, обязательный): Имя создаваемого файла, включая расширение.$deprecated
(null|string, обязательный): Не используется, должно быть установлено вnull
.$bits
(строка, обязательный): Содержимое файла в виде строки.$time
(строка|null, необязательный): Время в форматеГГГГ/ММ
, определяющее, куда будет помещен файл. По умолчанию файл сохраняется в текущую папку года и месяца.
Возвращаемый результат:
Функция возвращает ассоциативный массив с информацией о созданном файле:
file
: Путь к созданному файлу на сервере.url
: URL файла.type
: MIME-тип файла.error
: Сообщение об ошибке (если возникла ошибка), иначеfalse
.
Пример 1: Создание файла из внешнего контента
Предположим, вам нужно загрузить изображение с удаленного сервера и сохранить его в папке загрузок вашего сайта. Для этого можно использовать функцию file_get_contents()
для получения данных изображения, а затем записать их с помощью wp_upload_bits()
.
$img_content = file_get_contents('http://example.com/image.jpg');
$file_name = 'uploaded_image.jpg';
$upload = wp_upload_bits( $file_name, null, $img_content );
if( $upload['error'] ) {
echo 'Ошибка при загрузке файла: ' . $upload['error'];
} else {
echo 'Файл успешно загружен! Путь: ' . $upload['file'] . ', URL: ' . $upload['url'];
}
В этом примере, если загрузка прошла успешно, в массиве будет содержаться путь к файлу на сервере и его URL. В случае ошибки в ключе error
будет содержаться соответствующее сообщение.
Пример 2: Загрузка файла через форму
Функция также может использоваться для загрузки файлов, отправленных пользователями через форму. В этом примере мы обработаем файл, переданный через поле формы с именем file_input
:
if ( isset( $_FILES['file_input'] ) ) {
$upload = wp_upload_bits( $_FILES['file_input']['name'], null, file_get_contents( $_FILES['file_input']['tmp_name'] ) );
if ( $upload['error'] ) {
echo 'Ошибка загрузки файла: ' . $upload['error'];
} else {
echo 'Файл успешно загружен! Путь: ' . $upload['file'] . ', URL: ' . $upload['url'];
}
}
Этот код берет файл из временной директории и сохраняет его в папке загрузок WordPress. После успешной загрузки можно использовать URL для дальнейших операций, например, для отображения загруженного изображения на странице.
Пример 3: Использование с определенным временным параметром
Вы также можете указать, в какую временную папку нужно поместить файл, передав параметр $time
. Это удобно, если вы хотите организовать файлы по времени создания.
$time = '2024/10'; // Файл будет сохранен в папке uploads/2024/10
$custom_content = 'Это содержимое текстового файла';
$upload = wp_upload_bits( 'example.txt', null, $custom_content, $time );
if ( $upload['error'] ) {
echo 'Ошибка при создании файла: ' . $upload['error'];
} else {
echo 'Файл создан: ' . $upload['file'] . ', URL: ' . $upload['url'];
}
Дополнительная информация
- Проверка типа файла:
wp_upload_bits()
проверяет тип файла с помощью функцииwp_check_filetype()
, которая сверяет MIME-тип с допустимыми типами файлов, установленными в настройках WordPress. - Уникализация имени файла: Если файл с таким именем уже существует в папке загрузок, функция автоматически сгенерирует уникальное имя файла.
Заключение
Функция wp_upload_bits()
является удобным инструментом для программной работы с файлами в WordPress. Она позволяет загружать файлы в папку загрузок, проверять их безопасность и получать подробную информацию о результате операции.