How do I get the size of an attachment file?

I’m using the following template code to display attachment links:

$args = array(
    'post_type' => 'attachment',
    'numberposts' => -1,
    'post_status' => null,
    'post_parent' => $main_post_id
);

$attachments = get_posts($args);

foreach ($attachments as $attachment)
{
    the_attachment_link($attachment->ID, false);
}

but after the link I need to display the file’s size. How can I do this?

I’m guessing I could determine the file’s path (via wp_upload_dir() and a substr() of wp_get_attachment_url()) and call filesize() but that seems messy, and I’m just wondering if there’s a method built into WordPress.

9

As far as I know, WordPress has nothing built in for this, I would just do:

filesize( get_attached_file( $attachment->ID ) );

Leave a Comment