Attempting to copy images from a remote server for use as thumbnails on my wordpress site. Some of these images become damaged after copying.
Here is my code:
$url = 'http://media.cultserv.ru/i/1000x1000/'.$event->subevents[0]->image; $timeout_seconds = 100; $temp_file = download_url( $url, $timeout_seconds ); if(!is_wp_error( $temp_file )) { $file = array( 'name' => basename($url), 'type' => wp_check_filetype(basename($url), null), 'tmp_name' => $temp_file, 'error' => 0, 'size' => filesize($temp_file), ); $overrides = array( 'test_form' => false, 'test_size' => true, 'test_upload' => true, ); $results = wp_handle_sideload( $file, $overrides ); if(empty($results['error'])) { $filename = $results['file']; $local_url = $results['url']; $type = $results['type']; $attachment = array( 'post_mime_type' => $results['type'], 'post_title' => preg_replace('/.[^.]+$/', '', basename( $results['file'] ) ), 'post_content' => '', 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_parent' => $pID, ); $attachment_id = wp_insert_attachment( $attachment, $filename ); if($attachment_id) { set_post_thumbnail( $pID, $attachment_id ); } } }
Here is a screenshot that shows what I mean (Left - original image; Right - copying on my server):

source share