在文件系统中存储上传文件的最佳实践

rlo*_*nzo 5 filesystems uploading

有关存储用户上传文件的最佳做法是什么?

目前,我在以下方法中存储文件:

<web_app_root>/course_material/<term_id>/<course_id>/<file_id>
Run Code Online (Sandbox Code Playgroud)

如您所见,文件是根据数据库中的键存储的.我认为这更安全,因为我不必过滤文件名并将不安全的字符转换为安全字符.

但是,我正在开始一个新项目,并想知道将Web应用程序的文件系统与数据库紧密联系起来是不是一个坏主意.我应该以更易读的格式存储文件吗?

<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored>
Run Code Online (Sandbox Code Playgroud)

如果是这样,过滤掉文件名以保证安全的最佳方法是什么?或者我目前正在做的最佳做法是什么?

use*_*415 0

我建议您将其从 web_app_root 中取出。

我喜欢你在第一个例子中所做的方式。