1、需求
asp.net core 3.0的web项目中,在controller中,想要获取wwwroot下的imgs/banners文件夹下的所有文件;
在传统的asp.net web应用中,是用Server.MapPath()即可获取到web的根目录;
但在asp.net core 3.0的web项目中,已不能这样用了;
2、解决方案
1)、说明
ASP.NET Core为文件提供了两个不同的位置:
内容根
- 这是应用程序二进制文件和其他私有文件的保存位置。Web根目录
- 这是公共文件的保存位置(Web项目中的wwwroot文件夹)。
默认情况下,Web根位于内容根目录下。但是也存在Web根位于其他位置的部署。
2)、具体解决方法
通过在controller中注册IWebHostEnvironment
即可:
[Route("api")]
[ApiController]
public class resourceController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
public resourceController(IWebHostEnvironment webHostEnvironment)
{
_webHostEnvironment = webHostEnvironment;
}
[HttpGet("banners")]
public ActionResult GetBanners()
{
string content_path = _webHostEnvironment.ContentRootPath;//D:work\_BASEpspbpspbsrcpspb
string web_path = _webHostEnvironment.WebRootPath;//D:work\_BASEpspbpspbsrcpspbwwwroot
DirectoryInfo di = new DirectoryInfo(web_path + "/imgs/banners");
FileInfo[] fis = di.GetFiles();
var temp = fis.Select(p => string.Format("imgs/banners/{0}", p.Name));
return Ok(new { ok = true, data = temp });
}
}
_webHostEnvironment对象的ContentRootPath
属性就是内容根
目录;
_webHostEnvironment对象的WebRootPath
属性就是web根
目录;
作者:willingtolove
出处:http://www.cnblogs.com/willingtolove/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
fix eclipse gc overhead limit exceeded in mac
Cobub Razor
Mac commands
git vs svn
SourceTree
生成静态页技术
URL重写技术总结
回味手写三层-增删改查
生成 (web): 找不到目标 .NET Framework 版本的引用程序集;请确保已安装这些程序集或选择有效的目标版本。
- 最新文章
-
8 Hbase get方式获取数据
7 Hbase put方式插入数据
2、shell命令学习
1、定时开关机
19 异常,反射(转)
MySQL函数
Linux用户(组)管理
Linux apt-get
Linux初识(转)
Maven加依赖包
- 热门文章
-
hibernate入门实例
Linux常用命令
Javascript模块化编程
TCP握手
Spring整理
Android中的WebView
how to set up github blog
让多个Fragment 切换时不重新实例化、FragmentTabHost切换Fragment时避免UI重新加载
FragmentActivity+FragmentTabHost+Fragement instead of TabActibvity+TabHost+Activity
tip use view.isineditmode() in your custom views to skip code when shown in eclipse