c# - 在 asp.net MVC 4 webapp 中,用户上传的文件存储在哪里?

标签 c# sql-server asp.net-mvc-4 storage

我正在使用单独的数据库 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/

相关文章:

sql-server - 删除两个表中 'equivalent'的数据

c# - 通过代码更改旧密码的 OWIN 身份密码?

c# - 安全存储用户凭据(用户名/密码组合)以用于自动化测试

c# - 尝试获取 SignalR 中当前请求的 ConnectionID

c# - 为什么我的 TreeView 仅显示一层深度?

asp.net-mvc - 在 cshtml 中使用带有变量的 div 标签周围的 if else 语句

c#-4.0 - 如何在 Lucene.Net 3 中提升字段

c# - 将包含所有表和列名的 SQL 语句添加到字典中

sql - 在与主行相同的事务中插入具有外键关系的行

c# - 在 SQL Server 2008 中的多个表中插入数据