bp_document_handle_sideload( array $file_array, array $post_data = array() )
This handles a sideloaded file in the same way as an uploaded file is handled by {@link media_handle_upload()}
Description
Parameters
- $file_array
-
(Required) Array similar to a $_FILES upload array
- $post_data
-
(Optional) allows you to overwrite some of the attachment
Default value: array()
Return
(int|object) The ID of the attachment or a WP_Error on failure
Source
File: bp-document/bp-document-functions.php
function bp_document_handle_sideload( $file_array, $post_data = array() ) { $overrides = array( 'test_form' => false ); $time = current_time( 'mysql' ); if ( $post = get_post() ) { if ( substr( $post->post_date, 0, 4 ) > 0 ) { $time = $post->post_date; } } $file = wp_handle_sideload( $file_array, $overrides, $time ); if ( isset( $file['error'] ) ) { return new WP_Error( 'upload_error', $file['error'] ); } $url = $file['url']; $type = $file['type']; $file = $file['file']; $title = preg_replace( '/\.[^.]+$/', '', basename( $file ) ); $content = ''; if ( isset( $desc ) ) { $title = $desc; } // Construct the attachment array. $attachment = array_merge( array( 'post_mime_type' => $type, 'guid' => $url, 'post_title' => $title, 'post_content' => $content, ), $post_data ); // This should never be set as it would then overwrite an existing attachment. if ( isset( $attachment['ID'] ) ) { unset( $attachment['ID'] ); } // Save the attachment metadata. $id = wp_insert_attachment( $attachment, $file ); if ( ! function_exists( 'wp_generate_attachment_metadata' ) ) { require_once ABSPATH . 'wp-admin' . '/includes/image.php'; require_once ABSPATH . 'wp-admin' . '/includes/file.php'; require_once ABSPATH . 'wp-admin' . '/includes/media.php'; } if ( ! is_wp_error( $id ) ) { wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); } return $id; }
Changelog
Version | Description |
---|---|
BuddyBoss 1.4.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.