哪里存储用户上传的文件?

问题描述 投票:1回答:1

故事:用户可以上传私人文件(pdf),例如他的简历。他还需要能够查看他上传的文件。我知道数据库会变慢,所以我想将文件存储在文件系统中。但是我应该将文件存储在何处,这样它是安全的,其他用户无法访问它。我应该在我的Project / Solution中创建一个目录还是在我的项目之外创建一个目录。还是应该将其全部存储在WWWROOT中。有人可以给我建议吗?

我有一个ASP.NET CORE mvc应用程序。我想将文件名和路径存储在数据库中。上传的文件需要存储在文件系统中。

asp.net asp.net-mvc asp.net-core file-upload authorization
1个回答
0
投票

您可以存储在wwwroot中,并允许所有人访问它或自定义文件夹。

考虑到安全性,您可以检查用户角色或添加一些中间件来限制用户对该文件夹的访问。

或使用

Static file authorization

静态文件中间件不提供授权检查。任何它提供的文件(包括wwwroot下的文件)是公开的无障碍。根据授权提供文件:

将它们存储在wwwroot以及静态文件中间件。

通过应用了授权的操作方法为他们提供服务。返回FileResult对象

[Authorize]
public IActionResult BannerImage()
{
    var file = Path.Combine(Directory.GetCurrentDirectory(), 
                            "MyStaticFiles", "images", "banner1.svg");

    return PhysicalFile(file, "image/svg+xml");
}
© www.soinside.com 2019 - 2024. All rights reserved.