Функция загружает файл с указанным содержимым в папку с загрузками. После завершения возвращает массив с информацией об этом файле.
Проводит все необходимые проверки на безопасность (тип файла, размер и т.д.).
wp_upload_bits( $name, $deprecated, $bits, $time = null )
- $name
- (строка) название файла, обязательно должно быть вместе с расширением
- $deprecated
- (null) параметр не используется, тем не менее всегда должен устанавливаться со значением
null
- $bit
- (строка) содержимое файла в виде строки, это достигается php-функцией
file_get_contents()
- $time
- (строка) время в формате
ГГГГ/ММ
, нужно только в том случае, если в настройках стоит галка «Помещать загруженные мной файлы в папки по месяцу и году».
В этом случае вы сами можете определить папку с месяцем, в которую следует поместить файл, по умолчанию — текущий месяц.
Пример 1
Возьмем к примеру URL какой-нибудь левой картинки из интернета, например пусть будет изображение из предыдущего поста https://misha.agency/images/2013/03/diff-table.png
$upload = wp_upload_bits( 'table.png', null, file_get_contents('https://misha.agency/images/2013/03/diff-table.png'));
Это может быть абсолютно любая картинка с любого сайта, если только у них картинки не закрыты через .htaccess.
Массив $upload
будет выглядеть следующие образом:
print_r( $upload ); /* Array ( [file] => /home/user/truemisha/public_html/wp-content/2013/03/table.png [url] => https://misha.agency/wp-content/uploads/2013/03/table.png [error] => ) */
Теперь например можно вывести саму картинку:
<img src="<?php echo $upload['url'] ?>" />
Пример 2. Использование с формой
Предположим, пользователь загружает на сайт фото для своего профиля через форму. Результат также можно обработать через wp_upload_bits()
.
$upload = wp_upload_bits($_FILES["profile_photo"]["name"], null, file_get_contents($_FILES["profile_photo"]["tmp_name"]));