Server IP : 104.21.14.48 / Your IP : 3.142.40.175 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/mu-plugins/vendor/wpex/stock-photos/includes/ |
Upload File : |
<?php namespace WPaaS\StockPhotos; if ( ! defined( 'ABSPATH' ) ) { exit; } final class Import { /** * Import image from an url * * @param $url * * @return bool|int|object */ public function image( $url ) { $file_array = []; // Download file to temp location $file_array['tmp_name'] = $this->download( $url ); if ( ! $file_array['tmp_name'] ) { return false; } preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file_array['tmp_name'], $matches ); if ( ! $matches ) { unlink( $file_array['tmp_name'] ); return false; } $file_array['name'] = basename( $matches[0] ); if ( ! function_exists( 'media_handle_sideload' ) ) { require_once ABSPATH . 'wp-admin/includes/media.php'; } // Do the validation and storage stuff $id = media_handle_sideload( $file_array, 0 ); $this->delete_file( $file_array['tmp_name'] ); return is_wp_error( $id ) ? false : $id; } /** * Download a file by its URL * * @param string $url * * @return bool|string */ private function download( $url ) { if ( ! function_exists( 'download_url' ) ) { require_once ABSPATH . 'wp-admin/includes/file.php'; } $file = download_url( $url ); if ( is_wp_error( $file ) ) { return false; } // Added functionality to deal with image without extension $tmp_ext = pathinfo( $file, PATHINFO_EXTENSION ); // Get the real image extension $file_ext = image_type_to_extension( exif_imagetype( $file ) ); // Replace extension of basename file $new_file = basename( $file, ".$tmp_ext" ) . $file_ext; // Replace old file with new file in complete path location $new_file = str_replace( basename( $file ), $new_file, $file ); // Rename from .tpm to actual file format rename( $file, $new_file ); $file = $new_file; return $file; } /** * Delete a file * * @param string $filepath * * @return bool */ private function delete_file( $filepath ) { return is_readable( $filepath ) ? @unlink( $filepath ) : false; } }