wp_upload_bits()
Создает файл с указанным контентом в папке загрузок (upload). Возвращает данные загруженного файла. Не размещает данные о файле в БД.
Если загрузка вызовет ошибку, то ключ возвращаемого массива "error" будет содержать сообщение об ошибке.
Функция, сравнивает расширение файла со списком разрешенных к загрузке расширений см. wp_check_filetype(), максимальный допустимый размер и т.д. Важно при проверке расширения реальный MIME тип не проверяется файла не проверяется, если нужно проверить реальный MIME типа, то используйте функцию wp_check_filetype_and_ext().
Уникализирует имя файла.
Эта функция не перемещает уже загруженный файл в папку загрузок. Она создает новый файл с контентом переданным в параметре $bits. Если вам нужно переместить файл, то считайте содержимое файла и затем передайте данные этой функции, она создаст новый файл. После этого старый файл можно удалить.
Права доступа к файлу будут установлены автоматически в соответствии с настройками системы.
Хуки из функции
Возвращает
Массив
. Массив данных о работе функции, который содержит следующие данные:
Если файл загружен успешно то ключ "file" будет содержать полный путь до файла на сервере, а ключ "url" будет содержать URL файла.
array( 'file' => '/var/www/wp-content/uploads/2010/03/example.pdf', // путь 'url' => 'http://example.com/wp-content/uploads/2010/03/example.pdf', // урл 'type' => 'application/pdf', 'error' => false, // сюда записывается сообщение об ошибке в случае ошибки )
Использование
$upload = wp_upload_bits( $name, $deprecated, $bits, $time );
- $name(строка) (обязательный)
- Название создаваемого файла. Указывать нужно полное название с расширением.
- $deprecated(null) (обязательный)
- Не используется, нужно ставить null.
- $bits(строка) (обязательный)
- Контент создаваемого файла в виде строки. Обычно он получается с помощью функции file_get_contents().
- $time(строка)
- Время в формате ГГГГ/ММ - куда помещать файл в папке загрузок. Если в настройках снята галочка с пункта "Помещать загруженные мной файлы в папки по месяцу и году", то этот параметр не имеет смысла. По умолчанию, файл будет загружаться в текущий месяц, текущего года.
По умолчанию: null
Примеры
#1 Демонстрация
Этот пример показывает как создать файл в папке загрузок. Давайте создадим картинку. Возьмем контент внешней картинки с помощью file_get_contents() и запишем её в папку загрузок нашего сайта:
$cont = file_get_contents('http://example.com/some_img.png'); $new_file_name = 'uploaded.png'; $upload = wp_upload_bits( $new_file_name, null, $cont ); // проверим получилась ли запись if( $upload['error'] ) echo 'Запись вызвала ошибку: '. $upload['error']; else echo 'Запись удалась! Путь файла: '. $upload['file'] .'; УРЛ файла: '. $upload['url'];
В примере мы видим что массив $upload выглядит так:
Array ( [file] => /home/user/site/public_html/wp-content/2013/03/uploaded.png [url] => http://example.com/wp-content/uploads/2013/03/uploaded.png [type] => image/png [error] => )
Теперь, например, мы можем вывести на экран загруженную картинку используя url:
<img src="<?php echo $upload['url'] ?>" />
#2 Создание файла из формы
Этот пример показывает как создать файл переданный в форме. Предполагается, что запрос сделан с формы с полем field1:
$upload = wp_upload_bits( $_FILES["field1"]["name"], null, file_get_contents( $_FILES["field1"]["tmp_name"]) );
Эта функция пытается сохранить копию загружаемого файла в каталог загрузок WordPress. Она также выполняет функцию безопасности, проверяя файл (тип файла, размер и т.д.) и возвращает ошибку, если какой либо из параметров не допустим. После загрузки желательно удалить временный файл.
Список изменений
С версии 2.0.0 | Введена. |