Image Upload Function
This function makes users easily upload images, error message, define limits, and mandatory.
// Upload image function... use it to uload image. You can add size, error message, if its required or not. Follow me on instagram : adhsagar function BRKT_upload_image($file_name, $upload_name, $no_photo_error_message, $mandatory = false, $size = 1100000) { require_once(ABSPATH . 'wp-admin/includes/image.php'); require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/media.php'); $fileinfo = @getimagesize($_FILES["file-input"]["tmp_name"]); if (($mandatory == false) && ($fileinfo == false)) { return false; } else { $upload_file_name = $_FILES[$file_name]["name"]; $allowed_image_extension = array( "PNG", "png", "jpg", "JPG", "jpeg", "JPEG", ); // Get image file extension $file_extension = pathinfo($_FILES[$file_name]["name"], PATHINFO_EXTENSION); // Validate file input to check if is not empty if (!file_exists($_FILES[$file_name]["tmp_name"])) { $response = array( "error" => true, "message" => $no_photo_error_message ); } // Validate file input to check if is with valid extension else if (!in_array($file_extension, $allowed_image_extension)) { $response = array( "error" => true, "file_name" => $_FILES[$file_name]["name"], "message" => "Upload valid $file_name, $upload_file_name is in wrong format. Only PNG and JPEG are allowed." ); // echo $result; } // Validate image file size else if (($_FILES[$file_name]["size"] > $size)) { $response = array( "error" => true, "file_name" => $_FILES[$file_name]["name"], "message" => "$upload_file_name exceeds 1MB" ); } // Validate image file dimension else { $temp = explode(".", $_FILES[$file_name]["name"]); $newfilename = $upload_name . '-' . round(microtime(true)) . '.' . end($temp); $files = $_FILES[$file_name]; if ($files['name']) { $file = array( // 'name' => $files['name'], 'name' => $newfilename, 'type' => $files['type'], 'tmp_name' => $files['tmp_name'], 'error' => $files['error'], 'size' => $files['size'] ); $file_info = array($file_name => $file); foreach ($file_info as $file => $array) { $attach_id = media_handle_upload($file, 0, $file_info); $file_url = wp_get_attachment_url($attach_id); } } $response = array( "error" => false, "image_url" => $file_url, ); } return $response; } }