Make WordPress Core


Ignore:
Timestamp:
03/10/2022 01:08:19 PM (3 years ago)
Author:
spacedmonkey
Message:

Media: Store attachment’s file size in metadata.

Store the file size of all newly uploaded attachments, as part of the metadata stored in post meta. Storing file size means, developers will not have to resort to doing filesize function calls, that can be time consuming on assets on offloaded to services like Amazon’s S3.

This change also introduces a new helper function called, wp_filesize. This is a wrapper around the filesize php function, that adds some helpful filters and ensures the return value is an integer.

Props Cybr, Spacedmonkey, SergeyBiryukov, johnwatkins0, swissspidy, desrosj, joemcgill, azaozz, antpb, adamsilverstein, uday17035.
Fixes #49412.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/image.php

    r52425 r52837  
    211211    $image_meta['original_image'] = wp_basename( $original_file );
    212212
     213    // Add image file size.
     214    $image_meta['filesize'] = wp_filesize( $new_file );
     215
    213216    return $image_meta;
    214217}
     
    236239    // Default image meta.
    237240    $image_meta = array(
    238         'width'  => $imagesize[0],
    239         'height' => $imagesize[1],
    240         'file'   => _wp_relative_upload_path( $file ),
    241         'sizes'  => array(),
     241        'width'    => $imagesize[0],
     242        'height'   => $imagesize[1],
     243        'file'     => _wp_relative_upload_path( $file ),
     244        'filesize' => wp_filesize( $file ),
     245        'sizes'    => array(),
    242246    );
    243247
     
    630634    unset( $metadata['image']['data'] );
    631635
     636    // Capture file size for cases where it has not been captured yet, such as PDFs.
     637    if ( ! isset( $metadata['filesize'] ) && file_exists( $file ) ) {
     638        $metadata['filesize'] = wp_filesize( $file );
     639    }
     640
    632641    /**
    633642     * Filters the generated attachment meta data.
Note: See TracChangeset for help on using the changeset viewer.