wppaste
WordPress

File_Upload_Upgrader::__construct( string $form, string $urlholder )

Since
2.8.0
Source
wp-admin/includes/class-file-upload-upgrader.php:54
Construct the upgrader for a form.

Parameters

$formstring
The name of the form the file was uploaded from.
$urlholderstring
The name of the GET parameter that holds the filename.

Uses · 13

Show all 13

Source

	public function __construct( $form, $urlholder ) { 		if ( empty( $_FILES[ $form ]['name'] ) && empty( $_GET[ $urlholder ] ) ) {			wp_die( __( 'Please select a file' ) );		} 		// Handle a newly uploaded file. Else, assume it's already been uploaded.		if ( ! empty( $_FILES ) ) {			$overrides = array(				'test_form' => false,				'test_type' => false,			);			$file      = wp_handle_upload( $_FILES[ $form ], $overrides ); 			if ( isset( $file['error'] ) ) {				wp_die( $file['error'] );			} 			if ( 'pluginzip' === $form || 'themezip' === $form ) {				if ( ! wp_zip_file_is_valid( $file['file'] ) ) {					wp_delete_file( $file['file'] ); 					if ( 'pluginzip' === $form ) {						$plugins_page = sprintf(							'<a href="%s">%s</a>',							self_admin_url( 'plugin-install.php' ),							__( 'Return to the Plugin Installer' )						);						wp_die( __( 'Incompatible Archive.' ) . '<br />' . $plugins_page );					} 					if ( 'themezip' === $form ) {						$themes_page = sprintf(							'<a href="%s" target="_parent">%s</a>',							self_admin_url( 'theme-install.php' ),							__( 'Return to the Theme Installer' )						);						wp_die( __( 'Incompatible Archive.' ) . '<br />' . $themes_page );					}				}			} 			$this->filename = $_FILES[ $form ]['name'];			$this->package  = $file['file']; 			// Construct the attachment array.			$attachment = array(				'post_title'     => $this->filename,				'post_content'   => $file['url'],				'post_mime_type' => $file['type'],				'guid'           => $file['url'],				'context'        => 'upgrader',				'post_status'    => 'private',			); 			// Save the data.			$this->id = wp_insert_attachment( $attachment, $file['file'] ); 			// Schedule a cleanup for 2 hours from now in case of failed installation.			wp_schedule_single_event( time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array( $this->id ) ); 		} elseif ( is_numeric( $_GET[ $urlholder ] ) ) {			// Numeric Package = previously uploaded file, see above.			$this->id   = (int) $_GET[ $urlholder ];			$attachment = get_post( $this->id );			if ( empty( $attachment ) ) {				wp_die( __( 'Please select a file' ) );			} 			$this->filename = $attachment->post_title;			$this->package  = get_attached_file( $attachment->ID );		} else {			// Else, It's set to something, Back compat for plugins using the old (pre-3.3) File_Uploader handler.			$uploads = wp_upload_dir();			if ( ! ( $uploads && false === $uploads['error'] ) ) {				wp_die( $uploads['error'] );			} 			$this->filename = sanitize_file_name( $_GET[ $urlholder ] );			$this->package  = $uploads['basedir'] . '/' . $this->filename;

History

Introduced in 2.8.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 6.7.7 tag, from src/wp-admin/includes/class-file-upload-upgrader.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.