What is the best practices regarding storing files uploaded from users?
Currently, I am during the following method for storing files:
<web_app_root>/course_material/<term_id>/<course_id>/<file_id>
As you can see, the files are stored according to the keys in the database. I thought this was safer, since I wouldn't have to filter filenames and turn unsafe characters into safe characters.
However, I am starting a new project and wanted to know if it was a bad idea to tie a web app's filesystem so closely with a database. Should I store files in a more human readable format?
<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored>
If so, what are the best ways to filter out filenames to be safe? Or is the way I am currently doing it a best practice?