media_upload_form

The timeline below displays how wordpress function media_upload_form has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && str_contains($_SERVER['HTTP_USER_AGENT'], 'OS 7_') && str_contains($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X')) {
        $plupload_init['multi_selection'] = false;
    }
    // Check if WebP images can be edited.
    if (!wp_image_editor_supports(array('mime_type' => 'image/webp'))) {
        $plupload_init['webp_upload_error'] = true;
    }
    // Check if AVIF images can be edited.
    if (!wp_image_editor_supports(array('mime_type' => 'image/avif'))) {
        $plupload_init['avif_upload_error'] = true;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload">
			<?php 
    /* translators: Hidden accessibility text. */
    _e('Upload');
    ?>
		</label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 6.4

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && str_contains($_SERVER['HTTP_USER_AGENT'], 'OS 7_') && str_contains($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X')) {
        $plupload_init['multi_selection'] = false;
    }
    // Check if WebP images can be edited.
    if (!wp_image_editor_supports(array('mime_type' => 'image/webp'))) {
        $plupload_init['webp_upload_error'] = true;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload">
			<?php 
    /* translators: Hidden accessibility text. */
    _e('Upload');
    ?>
		</label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 6.3

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && str_contains($_SERVER['HTTP_USER_AGENT'], 'OS 7_') && str_contains($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X')) {
        $plupload_init['multi_selection'] = false;
    }
    // Check if WebP images can be edited.
    if (!wp_image_editor_supports(array('mime_type' => 'image/webp'))) {
        $plupload_init['webp_upload_error'] = true;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload">
			<?php 
    /* translators: Hidden accessibility text. */
    _e('Upload');
    ?>
		</label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 6.2

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    // Check if WebP images can be edited.
    if (!wp_image_editor_supports(array('mime_type' => 'image/webp'))) {
        $plupload_init['webp_upload_error'] = true;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload">
			<?php 
    /* translators: Hidden accessibility text. */
    _e('Upload');
    ?>
		</label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 5.8

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    // Check if WebP images can be edited.
    if (!wp_image_editor_supports(array('mime_type' => 'image/webp'))) {
        $plupload_init['webp_upload_error'] = true;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 5.6

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 5.4

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /*
     * Currently only iOS Safari supports multiple files uploading,
     * but iOS 7.x has a bug that prevents uploading of videos when enabled.
     * See #29602.
     */
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 5.3

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(
            /* translators: %s: https://apps.wordpress.org/ */
            __('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'),
            'https://apps.wordpress.org/'
        ) . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>
	<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
	</div>
	<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
	</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>
	<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
	var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
	wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
	</script>

	<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<div id="drag-drop-area">
		<div class="drag-drop-inside">
		<p class="drag-drop-info"><?php 
    _e('Drop files to upload');
    ?></p>
		<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
		<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
		</div>
	</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

	<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
    ?>
	</div>

<p class="max-upload-size">
	<?php 
    /* translators: %s: Maximum allowed file size. */
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?>
</p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
    // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
}

WordPress Version: 5.1

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice">
	<?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?>
</div>
<div id="media-upload-error">
	<?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?>
</div>
	<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array('post_id' => $post_id, '_wpnonce' => wp_create_nonce('media-form'), 'type' => $_type, 'tab' => $_tab, 'short' => '1');
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
	<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
	<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
	<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
	<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
	<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 4.9

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    /*
     * Since 4.9 the `runtimes` setting is hardcoded in our version of Plupload to `html5,html4`,
     * and the `flash_swf_url` and `silverlight_xap_url` are not used.
     */
    $plupload_init = array('browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 4.6

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filters the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    $plupload_init = array('runtimes' => 'html5,flash,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filters the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 4.4

/**
 * Outputs the legacy media upload form.
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filter the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    $plupload_init = array('runtimes' => 'html5,flash,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filter the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'primary', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 4.3

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @global string $type
 * @global string $tab
 * @global bool   $is_IE
 * @global bool   $is_opera
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filter the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    $plupload_init = array('runtimes' => 'html5,flash,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filter the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 4.1

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param array $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filter the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    $plupload_init = array('runtimes' => 'html5,flash,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Currently only iOS Safari supports multiple files uploading but iOS 7.x has a bug that prevents uploading of videos
    // when enabled. See #29602.
    if (wp_is_mobile() && strpos($_SERVER['HTTP_USER_AGENT'], 'OS 7_') !== false && strpos($_SERVER['HTTP_USER_AGENT'], 'like Mac OS X') !== false) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filter the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo wp_json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 4.0

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://apps.wordpress.org/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $max_upload_size = wp_max_upload_size();
    if (!$max_upload_size) {
        $max_upload_size = 0;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filter the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    $plupload_init = array('runtimes' => 'html5,flash,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    /**
     * Filter the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<p class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %s.'), esc_html(size_format($max_upload_size)));
    ?></p>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 3.9

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'https://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        /**
         * Fires when an upload will exceed the defined upload space quota for a network site.
         *
         * @since 3.5.0
         */
        do_action('upload_ui_over_quota');
        return;
    }
    /**
     * Fires just before the legacy (pre-3.5.0) upload interface is loaded.
     *
     * @since 2.6.0
     */
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    /**
     * Filter the media upload post parameters.
     *
     * @since 3.1.0 As 'swfupload_post_params'
     * @since 3.3.0
     *
     * @param array $post_params An array of media upload parameters used by Plupload.
     */
    $post_params = apply_filters('upload_post_params', $post_params);
    $plupload_init = array('runtimes' => 'html5,flash,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array('max_file_size' => $max_upload_size . 'b'), 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    /**
     * Filter the default Plupload settings.
     *
     * @since 3.3.0
     *
     * @param array $plupload_init An array of default settings used by Plupload.
     */
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    /**
     * Fires before the upload interface loads.
     *
     * @since 2.6.0 As 'pre-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('pre-plupload-upload-ui');
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    /**
     * Fires after the upload interface loads.
     *
     * @since 2.6.0 As 'post-flash-upload-ui'
     * @since 3.3.0
     */
    do_action('post-plupload-upload-ui');
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
	<?php 
    /**
     * Fires before the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    /**
     * Fires after the upload button in the media upload interface.
     *
     * @since 2.6.0
     */
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    /**
     * Fires on the post upload UI screen.
     *
     * Legacy (pre-3.5.0) media workflow hook.
     *
     * @since 2.6.0
     */
    do_action('post-upload-ui');
}

WordPress Version: 8.4

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .30

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 8.3

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .20

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 8.2

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .14

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 7.5

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .40

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 7.4

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .30

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 7.3

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .20

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 7.2

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: .14

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}

WordPress Version: 3.7

/**
 * {@internal Missing Short Description}}
 *
 * @since 2.5.0
 *
 * @param unknown_type $errors
 */
function media_upload_form($errors = null)
{
    global $type, $tab, $is_IE, $is_opera;
    if (!_device_can_upload()) {
        echo '<p>' . sprintf(__('The web browser on your device cannot be used to upload files. You may be able to use the <a href="%s">native app for your device</a> instead.'), 'http://wordpress.org/mobile/') . '</p>';
        return;
    }
    $upload_action_url = admin_url('async-upload.php');
    $post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
    $_type = isset($type) ? $type : '';
    $_tab = isset($tab) ? $tab : '';
    $upload_size_unit = $max_upload_size = wp_max_upload_size();
    $sizes = array('KB', 'MB', 'GB');
    for ($u = -1; $upload_size_unit > 1024 && $u < count($sizes) - 1; $u++) {
        $upload_size_unit /= 1024;
    }
    if ($u < 0) {
        $upload_size_unit = 0;
        $u = 0;
    } else {
        $upload_size_unit = (int) $upload_size_unit;
    }
    ?>

<div id="media-upload-notice"><?php 
    if (isset($errors['upload_notice'])) {
        echo $errors['upload_notice'];
    }
    ?></div>
<div id="media-upload-error"><?php 
    if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) {
        echo $errors['upload_error']->get_error_message();
    }
    ?></div>
<?php 
    if (is_multisite() && !is_upload_space_available()) {
        do_action('upload_ui_over_quota');
        return;
    }
    do_action('pre-upload-ui');
    $post_params = array("post_id" => $post_id, "_wpnonce" => wp_create_nonce('media-form'), "type" => $_type, "tab" => $_tab, "short" => "1");
    $post_params = apply_filters('upload_post_params', $post_params);
    // hook change! old name: 'swfupload_post_params'
    $plupload_init = array('runtimes' => 'html5,silverlight,flash,html4', 'browse_button' => 'plupload-browse-button', 'container' => 'plupload-upload-ui', 'drop_element' => 'drag-drop-area', 'file_data_name' => 'async-upload', 'multiple_queues' => true, 'max_file_size' => $max_upload_size . 'b', 'url' => $upload_action_url, 'flash_swf_url' => includes_url('js/plupload/plupload.flash.swf'), 'silverlight_xap_url' => includes_url('js/plupload/plupload.silverlight.xap'), 'filters' => array(array('title' => __('Allowed Files'), 'extensions' => '*')), 'multipart' => true, 'urlstream_upload' => true, 'multipart_params' => $post_params);
    // Multi-file uploading doesn't currently work in iOS Safari,
    // single-file allows the built-in camera to be used as source for images
    if (wp_is_mobile()) {
        $plupload_init['multi_selection'] = false;
    }
    $plupload_init = apply_filters('plupload_init', $plupload_init);
    ?>

<script type="text/javascript">
<?php 
    // Verify size is an int. If not return default value.
    $large_size_h = absint(get_option('large_size_h'));
    if (!$large_size_h) {
        $large_size_h = 1024;
    }
    $large_size_w = absint(get_option('large_size_w'));
    if (!$large_size_w) {
        $large_size_w = 1024;
    }
    ?>
var resize_height = <?php 
    echo $large_size_h;
    ?>, resize_width = <?php 
    echo $large_size_w;
    ?>,
wpUploaderInit = <?php 
    echo json_encode($plupload_init);
    ?>;
</script>

<div id="plupload-upload-ui" class="hide-if-no-js">
<?php 
    do_action('pre-plupload-upload-ui');
    // hook change, old name: 'pre-flash-upload-ui' 
    ?>
<div id="drag-drop-area">
	<div class="drag-drop-inside">
	<p class="drag-drop-info"><?php 
    _e('Drop files here');
    ?></p>
	<p><?php 
    _ex('or', 'Uploader: Drop files here - or - Select Files');
    ?></p>
	<p class="drag-drop-buttons"><input id="plupload-browse-button" type="button" value="<?php 
    esc_attr_e('Select Files');
    ?>" class="button" /></p>
	</div>
</div>
<?php 
    do_action('post-plupload-upload-ui');
    // hook change, old name: 'post-flash-upload-ui' 
    ?>
</div>

<div id="html-upload-ui" class="hide-if-js">
<?php 
    do_action('pre-html-upload-ui');
    ?>
	<p id="async-upload-wrap">
		<label class="screen-reader-text" for="async-upload"><?php 
    _e('Upload');
    ?></label>
		<input type="file" name="async-upload" id="async-upload" />
		<?php 
    submit_button(__('Upload'), 'button', 'html-upload', false);
    ?>
		<a href="#" onclick="try{top.tb_remove();}catch(e){}; return false;"><?php 
    _e('Cancel');
    ?></a>
	</p>
	<div class="clear"></div>
<?php 
    do_action('post-html-upload-ui');
    ?>
</div>

<span class="max-upload-size"><?php 
    printf(__('Maximum upload file size: %d%s.'), esc_html($upload_size_unit), esc_html($sizes[$u]));
    ?></span>
<?php 
    if (($is_IE || $is_opera) && $max_upload_size > 100 * 1024 * 1024) {
        ?>
	<span class="big-file-warning"><?php 
        _e('Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB.');
        ?></span>
<?php 
    }
    do_action('post-upload-ui');
}