How can I create an upload page for (and only visible to) specific users?

The plugin Omni Secure Files has quite a nice upload interface and different wordpress user roles can be given permission to either upload or just view the uploaded files

Update from comment

Here’s the code I put into a page template to get the basics of OSF working in the front of the site:

if (!empty($omni_secure_files)) {
    wp_register_style('omni-secure-files',$omni_secure_files->plugin_url.'css/style.css',array(),false,'all');
    wp_enqueue_style('omni-secure-files');                          
    $omni_secure_files->menu_root();
}

The wp_register_style / wp_enqueue_style is necessary if you want to style it nicely. You mostly need to copy the required admin styles into the page template. At some point I might get round to releasing it as an extension to the plugin. I think the folks that wrote the plugin will probably get round to it at some point. It did take a lot of work though, so its no easy fix.