function maria_frontend_image_upload() {

if ( isset($_POST['maria_upload']) && !empty($_FILES['maria_image']) ) {

    $file = $_FILES['maria_image'];

    require_once(ABSPATH . 'wp-admin/includes/file.php');

    $upload = wp_handle_upload($file, array('test_form' => false));

    if (isset($upload['file'])) {

        $file_type = wp_check_filetype(basename($upload['file']), null);

        $attachment = array(
            'post_mime_type' => $file_type['type'],
            'post_title'     => sanitize_file_name($file['name']),
            'post_content'   => '',
            'post_status'    => 'inherit'
        );

        $attach_id = wp_insert_attachment($attachment, $upload['file']);

        require_once(ABSPATH . 'wp-admin/includes/image.php');
        $attach_data = wp_generate_attachment_metadata($attach_id, $upload['file']);
        wp_update_attachment_metadata($attach_id, $attach_data);

        echo "<p style='color:green;'>Image uploaded successfully!</p>";
    }
}

ob_start(); ?>

<form method="post" enctype="multipart/form-data">
    <label>Upload Image:</label> <br>
    <input type="file" name="maria_image" required><br><br>
    <button type="submit" name="maria_upload">Upload</button>
</form>

<?php
return ob_get_clean();

}
add_shortcode(‘maria_upload_form’, ‘maria_frontend_image_upload’);