关于存储用户上传的文件,最佳实践是什么?
目前,我正在使用以下方法来存储文件:
<web_app_root>/course_material/<term_id>/<course_id>/<file_id>
如您所见,文件是根据数据库中的键存储的。我认为这样更安全,因为我不必过滤文件名并将不安全的字符转换为安全字符。
然而,我正在开始一个新项目,并想知道将Web应用程序的文件系统与数据库紧密联系在一起是否是一个坏主意。我应该以更易于人类阅读的格式存储文件吗?
<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored>
如果需要,那么最安全的过滤文件名的方法是什么?或者我当前所采用的方式是最佳实践吗?