【转】asp.net core 3.0获取web应用的根目录

目录

  • 1、需求
  • 2、解决方案

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\_BASE\pspb\pspb\src\pspb\
            string web_path = _webHostEnvironment.WebRootPath;//D:\work\_BASE\pspb\pspb\src\pspb\wwwroot
            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根目录;



【转】asp.net core 3.0获取web应用的根目录

原文地址:https://www.cnblogs.com/hurui1/p/12540183.html

时间: 2024-10-07 16:17:23

【转】asp.net core 3.0获取web应用的根目录的相关文章

asp.net core 2.0 web api基于JWT自定义策略授权

JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端验证通过即可能获取想要访问的资源.关于JWT的技术,可参考网络上文章,这里不作详细说明, 这篇博文,主要说明在asp.net core 2.0中,基于jwt的web api的权限设置,即在asp.net core中怎么用JWT,再次就是不同用户或角色因为权限问题,即使援用Token,也不能访问不该访

用VSCode开发一个asp.net core2.0+angular5项目(5): Angular5+asp.net core 2.0 web api文件上传

第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 第二部分: http://www.cnblogs.com/cgzl/p/8481825.html 第三部分: https://www.cnblogs.com/cgzl/p/8525541.html 第四部分: https://www.cnblogs.com/cgzl/p/8536350.html 这部分就讲从angular5的客户端上传图片到asp.net core 2.0的 web api. 这是

ASP.NET CORE 1.0 初次接触

vs2015 update3 升级后,可以创建asp.net core 1.0 的web应用了, 默认模版,发布到指定文件夹 服务器上需要安装 DotNetCore.1.0.0-WindowsHosting https://www.microsoft.com/net/download   server hosting 下载即可. 安装完, 在IIS里, 模块和应用程序映射 可以看到新加入来的  aspnetcore相关的一个注册项 记得,一定要重启IIS,不然报下面的错误 asp.net cor

【转载】从头编写 asp.net core 2.0 web api 基础框架 (1)

工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相关知识就不介绍了, 这里主要是从头编写一个asp.net core 2.0 web api的基础框架. 我一直在关注asp.net core 和 angular 2/4, 并在用这对开发了一些比较小的项目. 现在我感觉是时候使用这两个技术去为企业开发大一点的项目了, 由于企业有时候需要SSO(单点登

【转载】从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 前三部分弄完,我们已经可以对内存数据进行CRUD的基本操作,并且可以在asp.net core 2中集成Nlog了. 下面继续: Entity Framework Core 2.0 Entity Framework 是ORM(Object-Relational-Mapping).ORM是一种让你

从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

原文:从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html Github源码地址:https://github.com/solenovex/Building-asp.net-co

从头编写 asp.net core 2.0 web api 基础框架 (1)

原文:从头编写 asp.net core 2.0 web api 基础框架 (1) 工具: 1.Visual Studio 2017 V15.3.5+ 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相关知识就不介绍了, 这里主要是从头编写一个asp.net core 2.0 web api的基础框架. 我一直在关注asp.net core 和 angular 2/4, 并在用这对开发了一些比较小的项目. 现在我感

03、手工创建Asp.Net Core 2.0 web应用程序(探索最小架构)

一.创建一个干净的控制台程序 这里我们使用的开发工具是VS2017 项目只有一个Program.cs类. 二.让控制台程序可以响应Web请求 1.让控制台程序成为Web宿主,需要引用WebHost包 Microsoft.AspNetCore.Hosting 2.我们不想用IIS作为服务器,可以使用Kestrel作为Web服务器 Microsoft.AspNetCore.Server.Kestrel 3.使用Nuget应必要包之后的项目结构 4.指定Web服务器,并启动WebHost 在Main方

从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD

原文:从头编写 asp.net core 2.0 web api 基础框架 (5) EF CRUD 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html 第4部分:http://www.cnblogs.com/cgzl/p/7661805.html Github源码