The Download Protect extension allows you to load files such as images, documents, etc to a protected directory that requires the user to be logged in to access.
The Download Protect plugin for WP-Members protects individual files from download.
Files are uploaded to a separate folder within the main WP file upload folder structure and that folder is restricted from access. All files are served through a script-based process that prevents them from being accessed directly. If a user is not logged in, they can be directed to an error page that requires them to log in.
Even if the direct link to the file within the file structure were known, the file cannot be accessed directly.
Plugin InfoCurrent Stable Version: 1.2.0
Minimum WordPress Version: 3.6
Tested up to WordPress Version: 4.9