wp_remote_get to upload image corrupts – local fiel alternative?
-
Hi.
I have been using the following code to upload the first image on a page as the featured image
function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)){ //Defines a default image $first_img = "/images/default.jpg"; } return $first_img; } function save_first_image(){ global $post, $posts; $first_image = catch_that_image(); $post_id = $post -> post_id; $args = array('timeout' => '1200'); $get = wp_remote_get( $first_image,$args ); $type = wp_remote_retrieve_header( $get, 'content-type' ); $mirror = wp_upload_bits(rawurldecode(basename( $first_image )), '', wp_remote_retrieve_body( $get ) ); //Attachment options $attachment = array( 'post_title'=> basename( $first_image ), 'post_mime_type' => $type ); // Add the image to your media library and set as featured image $attach_id = wp_insert_attachment( $attachment, $mirror['file'], $post_id ); $attach_data = wp_generate_attachment_metadata( $attach_id, $first_image ); wp_update_attachment_metadata( $attach_id, $attach_data ); set_post_thumbnail( $post_id, $attach_id ); }
It was working fine, but now seems to be always attaching a broken image.
Does anyone have experience of this – I am wondering if it is cloudflare causing the issue – but when I disable it, it is still uploading broken images.
All of the images are stored in a folder in the webroot of the site – is there a way to upload without using wp_remote_get?
Thanks
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘wp_remote_get to upload image corrupts – local fiel alternative?’ is closed to new replies.