I used this code to make subscribers upload files and it works successfully..
I think you must add true in the last line.
if ( current_user_can('subscriber') && !current_user_can('upload_files') ) {
add_action('init', 'allow_subscriber_uploads');
function allow_subscriber_uploads() {
$new_role = get_role('subscriber');
$new_role->add_cap('upload_files', true);
}
}