wp_handle_upload specified file failed upload test

Please add below code in your theme functions.php file :

add_filter( 'wp_check_filetype_and_ext', 'file_and_ext_allow_for_user', 10, 4 );
function file_and_ext_allow_for_user( $types, $file, $filename, $mimes )
{
    if( false !== strpos( $filename, '.doc' ) ) {
        $types['ext'] = 'doc';
        $types['type'] = 'application/msword';
    } else if( false !== strpos( $filename, '.pdf' ) ) {
        $types['ext'] = 'pdf';
        $types['type'] = 'application/pdf';
    } else if( false !== strpos( $filename, '.docx' ) ) {
        $types['ext'] = 'docx';
        $types['type'] = 'application/docx';
    }
    return $types;
}

File Upload Code

if ( ! function_exists( 'wp_handle_upload' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
}

$uploadedfile = $_FILES['amfile'];

if( $uploadedfile ){

    $u = "Uploaded file set";

    $upload_overrides = array( 'test_form' => false );

    $movefile = wp_handle_upload( $uploadedfile, $upload_overrides ); 

    if ( $movefile && !isset( $movefile['error'] ) ) {

        $m = "Movefile file set";

        echo "File is valid, and was successfully uploaded.\n";
        var_dump( $movefile);

    } else {
        $m = "Movefile file NOT set";
        /**
         * Error generated by _wp_handle_upload()
         * @see _wp_handle_upload() in wp-admin/includes/file.php
         */
        print_r($movefile);
        $error = $movefile['error'];
    }


} else  {
    $u = "Uploaded file NOT set";
} 

echo $u . "<br>";
echo $m . "<br>";
echo $error . "<br>";