我正在使用单独的数据库 Multi-Tenancy 架构构建 MVC4 应用程序。 客户还可以选择上传文件(大多数大小为 1-5MB,文本文件/文档)。
我的结论是,最好将文件存储在文件系统中,同时将元数据保存在数据库中(每个客户的单独文件夹),但是,我不知道将文件存储在何处。 MVC 是否为此设置了特殊位置?或者我应该在服务器上的某个地方创建一个文件夹。
创建这样的文件夹在默认情况下是否安全?
谢谢!
最佳答案
好吧,我想给以下建议,Gitzerai 已经给了很多思考。
Gitzerai 也许您会在这里找到您在为您的应用程序创建解决方案时遗漏的东西。
无论如何,
您可以在文件系统上上传文件,但您需要注意几件事情。
确保运行 IIS 应用程序池的帐户对该文件夹只有读写权限,在任何情况下都不能执行
检查文件扩展名并禁止可执行文件(.exe、.dll 等)
存储不带扩展名或带有一些 .zzz 扩展名的文件以防万一。当用户需要下载文件时可以动态设置为原始扩展名
仅使用一个文件夹来存储所有手动创建的文件。如果不是真的需要,避免动态创建多个文件夹
创建一个单独的应用程序,偶尔对数据库中的记录与文件系统中的文件进行完整性检查
关于c# - 在 asp.net MVC 4 webapp 中,用户上传的文件存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19402308/