【发布时间】:2021-11-03 04:08:33
【问题描述】:
基于微软的网站以及这个论坛,普遍的共识似乎是将网站上传的用户文件保存在 wwwroot 文件夹 (C:\inetpub\wwwroot) 之外,甚至更好地保存在系统驱动器之外。我在 IIS 中为我的文件上传设置了一个虚拟目录(C:\inetpub\files),该目录位于 wwwroot 之外,但仍在 C 驱动器上(我们只有一个驱动器,我无法对其进行分区以创建另一个驱动器)。所以希望这在这方面仍然被认为是安全的!然而,我的问题是我使用以下代码将目录获取到我的托管环境:
var filePath = Path.Combine(env.WebRootPath, document.DOCUMENT_LOCATION);
var fileName = document.FILENAME_AFTER_UPLOAD;
var fullPath = Path.Combine(filePath, fileName);
我不确定我应该使用什么文件路径来保存到虚拟目录。虚拟目录的别名是“files”,所以它的虚拟路径是/files,所以我应该使用 env.WebRootPath +“/files”还是有其他方法可以访问虚拟目录/路径?后台文档是来自 SQL 查询的模型对象,它返回我要保存到的文件路径和我们在 SQL 服务器中创建的文件名。
【问题讨论】:
-
你的意思是把文件上传到指定的路径,比如C盘还是D盘?
-
我想使用 ihostenviroment 命名空间中的 env.webrootpath 来保持我的代码更加动态。但是,我将文件上传文件夹存储在 env.webrootpath 的父目录之外,因为它位于 wwwroot 之外
标签: asp.net-core iis asp.net-core-webapi iis-8