diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php index 26d0092046..5864f87050 100644 --- a/wp-admin/includes/image.php +++ b/wp-admin/includes/image.php @@ -88,11 +88,13 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) { $metadata = array(); if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) { - $imagesize = getimagesize( $file ); + $full_path_file = $file; + $imagesize = getimagesize( $full_path_file ); $metadata['width'] = $imagesize[0]; $metadata['height'] = $imagesize[1]; list($uwidth, $uheight) = wp_shrink_dimensions($metadata['width'], $metadata['height']); $metadata['hwstring_small'] = "height='$uheight' width='$uwidth'"; + // Make the file path relative to the upload dir if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) { // Get upload directory if ( 0 === strpos($file, $uploads['basedir']) ) {// Check that the upload base exists in the file path @@ -107,13 +109,13 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) { $sizes = apply_filters('intermediate_image_sizes', $sizes); foreach ($sizes as $size) { - $resized = image_make_intermediate_size( $file, get_option("{$size}_size_w"), get_option("{$size}_size_h"), get_option("{$size}_crop") ); + $resized = image_make_intermediate_size( $full_path_file, get_option("{$size}_size_w"), get_option("{$size}_size_h"), get_option("{$size}_crop") ); if ( $resized ) $metadata['sizes'][$size] = $resized; } // fetch additional metadata from exif/iptc - $image_meta = wp_read_image_metadata( $file ); + $image_meta = wp_read_image_metadata( $full_path_file ); if ($image_meta) $metadata['image_meta'] = $image_meta;