PHP Web Development Wordpress

Base64 encoded image upload to wordpress media

/* update image to media =begin */
			$upload_dir = wp_upload_dir();
			$upload_path = str_replace( '/', DIRECTORY_SEPARATOR, $upload_dir['path'] ) . DIRECTORY_SEPARATOR;

			$decoded = base64_decode(str_replace('data:image/jpeg;base64,','',$_REQUEST['image_preview']));
			$filename = 'wigo.png';
			$hashed_filename = md5( $filename . microtime() ) . '_' . $filename;
			$image_upload = file_put_contents( $upload_path . $hashed_filename, $decoded );

			//HANDLE UPLOADED FILE
			if( !function_exists( 'wp_handle_sideload' ) ) {
			  require_once( ABSPATH . 'wp-admin/includes/file.php' );
			}

			// Without that I'm getting a debug error!?
			if( !function_exists( 'wp_get_current_user' ) ) {
			  require_once( ABSPATH . 'wp-includes/pluggable.php' );
			}
			$file             = array();
			$file['error']    = '';
			$file['tmp_name'] = $upload_path . $hashed_filename;
			$file['name']     = $hashed_filename;
			$file['type']     = 'image/png';
			$file['size']     = filesize( $upload_path . $hashed_filename );
			// upload file to server
			// use $file instead of $image_upload
			$file_return = wp_handle_sideload( $file, array( 'test_form' => false ) );
			$filename = $file_return['file'];
			$attachment = array(
												 'post_mime_type' => $file_return['type'],
												 'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
												 'post_content' => '',
												 'post_status' => 'inherit',
												 'guid' => $wp_upload_dir['url'] . '/' . basename($filename)
												 );

			$attach_id = wp_insert_attachment( $attachment, $filename );
			/// generate thumbnails of newly uploaded image
			$attachment_meta = wp_generate_attachment_metadata($attach_id, $filename );
			wp_update_attachment_metadata($attach_id,$attachment_meta);
			set_post_thumbnail($post_id,$attach_id);
			/* update image to media =end */

Leave a Reply

Your email address will not be published. Required fields are marked *


CAPTCHA Image
Reload Image