wp_ajax_media_create_image_subsizes() – Ajax handler for creating missing image sub-sizes for just uploaded images.

You appear to be a bot. Output may be restricted

Description

Ajax handler for creating missing image sub-sizes for just uploaded images.

Usage

wp_ajax_media_create_image_subsizes();

Parameters

Returns

void

Source

File name: wordpress/wp-admin/includes/ajax-actions.php
Lines:

1 to 51 of 51
function wp_ajax_media_create_image_subsizes() {
  check_ajax_referer( 'media-form' );

  if ( ! current_user_can( 'upload_files' ) ) {
    wp_send_json_error( array( 'message' => __( 'Sorry, you are not allowed to upload files.' ) ) );
  }

  if ( empty( $_POST['attachment_id'] ) ) {
    wp_send_json_error( array( 'message' => __( 'Upload failed. Please reload and try again.' ) ) );
  }

  $attachment_id = (int) $_POST['attachment_id'];

  if ( ! empty( $_POST['_wp_upload_failed_cleanup'] ) ) {
    // Upload failed. Cleanup.
    if ( wp_attachment_is_image( $attachment_id ) && current_user_can( 'delete_post', $attachment_id ) ) {
      $attachment = get_post( $attachment_id );

      // Created at most 10 min ago.
      if ( $attachment && ( time() - strtotime( $attachment->post_date_gmt ) < 600 ) ) {
        wp_delete_attachment( $attachment_id, true );
        wp_send_json_success();
      }
    }
  }

  // Set a custom header with the attachment_id.
  // Used by the browser/client to resume creating image sub-sizes after a PHP fatal error.
  if ( ! headers_sent() ) {
    header( 'X-WP-Upload-Attachment-ID: ' . $attachment_id );
  }

  // This can still be pretty slow and cause timeout or out of memory errors.
  // The js that handles the response would need to also handle HTTP 500 errors.
  wp_update_image_subsizes( $attachment_id );

  if ( ! empty( $_POST['_legacy_support'] ) ) {
    // The old (inline) uploader. Only needs the attachment_id.
    $response = array( 'id' => $attachment_id );
  } else {
    // Media modal and Media Library grid view.
    $response = wp_prepare_attachment_for_js( $attachment_id );

    if ( ! $response ) {
      wp_send_json_error( array( 'message' => __( 'Upload failed.' ) ) );
    }
  }

  // At this point the image has been uploaded successfully.
  wp_send_json_success( $response );
}
 

 View on GitHub View on Trac