Used By
| Used By | Description | 
|---|---|
| wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php: WP_REST_Attachments_Controller::upload_from_data() | Handles an upload via raw POST data. | 
Parses filename from a Content-Disposition header value.
As per RFC6266:
content-disposition = "Content-Disposition" ":"
                       disposition-type *( ";" disposition-parm )
disposition-type    = "inline" | "attachment" | disp-ext-type
                    ; case-insensitive
disp-ext-type       = token
disposition-parm    = filename-parm | disp-ext-parm
filename-parm       = "filename" "=" value
                    | "filename*" "=" ext-value
disp-ext-parm       = token "=" value
                    | ext-token "=" ext-value
ext-token           = <the characters in token, followed by "*">(string[]) (Required) List of Content-Disposition header values.
(string|null) Filename if available, or null if not found.
File: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
public static function get_filename_from_disposition( $disposition_header ) {
		// Get the filename.
		$filename = null;
		foreach ( $disposition_header as $value ) {
			$value = trim( $value );
			if ( strpos( $value, ';' ) === false ) {
				continue;
			}
			list( $type, $attr_parts ) = explode( ';', $value, 2 );
			$attr_parts = explode( ';', $attr_parts );
			$attributes = array();
			foreach ( $attr_parts as $part ) {
				if ( strpos( $part, '=' ) === false ) {
					continue;
				}
				list( $key, $value ) = explode( '=', $part, 2 );
				$attributes[ trim( $key ) ] = trim( $value );
			}
			if ( empty( $attributes['filename'] ) ) {
				continue;
			}
			$filename = trim( $attributes['filename'] );
			// Unquote quoted filename, but after trimming.
			if ( substr( $filename, 0, 1 ) === '"' && substr( $filename, -1, 1 ) === '"' ) {
				$filename = substr( $filename, 1, -1 );
			}
		}
		return $filename;
	}  | Version | Description | 
|---|---|
| 4.7.0 | Introduced. | 
    © 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.
    https://developer.wordpress.org/reference/classes/wp_rest_attachments_controller/get_filename_from_disposition