ASP.NET Core基础之图片文件(一)-WebApi访问静态图片

阅读本文你的收获:

  1. 学会在WebApi项目中访问静态图片
  2. 了解静态文件中间件UseStaticFiles的用法

系统中免不了要去处理图片文件,比如上传商品的图片、显示商品的图片,访问系统中的图片等等,根据微软官网描述:

静态文件(如 HTML、CSS、图像和 JavaScript)是 ASP.NET Core 应用直接提供给客户端的资产。

那么怎么才能访问系统中的静态文件呢?本次,通过以下案例来演示在ASP.NET Core WebApi中如何访问静态图片。

开发环境:

操作系统: Windows 10 专业版
平台版本是:.NET 6
开发框架:ASP.NET Core WebApi
开发工具:Visual Studio 2022

一、显示wwwroot下的静态图片文件

静态文件存储在项目的 Web 根目录中。 默认的Web根目录路径为 "内容根目录/wwwroot",其中的"内容根目录"需要知道一下—— 在开发中,内容根目录默认为项目的根目录,它是应用内容文件(如生成的exe、dll文件,json配置文件等)和 Web 根目录的基路径。按照以下步骤:

  1. 项目中创建wwwroot文件夹
    ASP.NET Core WebApi项目中默认没有wwwroot文件夹,项目上右键菜单依次单击“添加”-“新建文件夹”来创建一个wwwroot文件夹,接着在此文件夹下面创建images文件夹,并添加 wwwroot/images/eagle.jpg 文件
    在这里插入图片描述

  2. 在Program.cs中配置 静态文件中间件UseStaticFiles


//服务注册代码略...// 配置HTTP请求管道 (Middleware 中间件:处理请求和响应的一些组件)
var app = builder.Build();// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}//配置静态文件中间件
app.UseStaticFiles();app.UseHttpsRedirection();
app.UseCors(); 
app.UseAuthorization();
app.MapControllers();
app.Run();
  1. 可以通过浏览器访问里面的静态图片文件
    用于访问 images 文件夹中的文件的 URI 地址格式为 https:///images/<image_file_name>。 本例为https://localhost:7186/images/eagle.jpg
    显示静态图片

二、显示任意位置的静态图片

  1. 项目中创建自定义文件夹,如“Files”文件夹
    自定义文件夹
  2. 在Program.cs中配置静态文件中间件

采用自定义配置StaticFileOptions,文件可以随意放到想放的路径

//引用命名空间
using Microsoft.Extensions.FileProviders;app.UseStaticFiles(new StaticFileOptions{//例如保存到网站根目录 {content root}/Files下面,可以用Path.Combine方法拼接路径FileProvider = new PhysicalFileProvider(Path.Combine(app.Environment.ContentRootPath, "Files")),RequestPath = "/StaticFiles"  //配置请求路径});
  1. 用浏览器访问Files文件夹下面的图片
    因为配置了请求路径为“/StaticFiles”,所以本例的访问路径为:https://localhost:7186/StaticFiles/dolphin.jpg
    可爱的海豚

总结:

本文演示了在WebApi项目中如何访问静态图片,可以把图片放在默认的Web根目录wwwroot中,也可以自定义文件夹。用到了UseStaticFiles中间件,并对其配置进行了了解。以上例子中的图片文件都是能被公开访问的,如果想要控制文件的权限,需要再做额外的处理,请自行查看微软官网。

那今天就分享到这里,如果本文对你有帮助的话,请点赞+评论+关注,或者转发给需要的朋友。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/317970.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot的基础配置

问题导入 入门案例中没有引入spring-webmvc等依赖包&#xff0c;没有配置Tomcat服务器&#xff0c;为什么能正常启动&#xff1f;我们没有配置端口号&#xff0c;为什么端口是8080&#xff1f; 起步依赖 starter SpringBoot中常见项目名称&#xff0c;定义了当前项目使用的所…

Docker学习(一)

注&#xff1a;此为笔者学习狂神说Docker的笔记&#xff0c;其中包含个人的笔记和理解&#xff0c;仅做学习笔记之用&#xff0c;更多详细资讯请出门左拐B站&#xff1a;狂神说!!! Docker 一、Docker入门 1. Docker 为什么会出现 2.Docker 文档地址: https://docs.docker.co…

Ribbon相关面试及答案(2024)

1、Ribbon是什么&#xff0c;它在微服务架构中扮演什么角色&#xff1f; Ribbon是一个客户端负载均衡器&#xff0c;它在微服务架构中扮演着关键性的角色。Ribbon的设计理念是在客户端进行服务发现和负载均衡&#xff0c;这种方式不同于传统的通过中心化的负载均衡器&#xff…

【webstorm中通过附加方式打开一个项目,这个项目本身有git,但是却看不到git的解决方法】

1、如图所示 设置-》版本控制-》未注册的根&#xff0c;选中后&#xff0c;再点加号&#xff0c;就可以了 2、如图所示 版本控制-》直接点加号-》选中项目路径&#xff0c;vcs选择git&#xff0c;点击确定就可以了

力扣每日一题99:恢复二叉搜索树

题目 给你二叉搜索树的根节点 root &#xff0c;该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下&#xff0c;恢复这棵树 。 示例 1&#xff1a; 输入&#xff1a;root [1,3,null,null,2] 输出&#xff1a;[3,1,null,null,2] 解释&#xff1a;3 不能是 1 …

Oracle-数据库迁移之后性能变慢问题分析

问题背景&#xff1a; ​一套Oracle11.2.0.4的RAC集群&#xff0c;通过Dataguard switchover方式迁移到新机器之后&#xff0c;运行第一天应用报障说应用性能慢&#xff0c;需要进行性能问题排查 问题分析&#xff1a; 首先&#xff0c;登陆到服务器&#xff0c;用TOP看一眼两个…

常用Java Lambda表达式示例

文章目录 1. **实现Runnable接口**&#xff1a;2. **事件监听器**&#xff08;如Swing中的ActionListener&#xff09;&#xff1a;3. **集合遍历**&#xff08;使用forEach方法&#xff09;&#xff1a;4. **过滤集合**&#xff08;使用Stream API&#xff09;&#xff1a;5. …

Prometheus-AlertManager 邮件告警

环境,软件准备 本次演示环境&#xff0c;我是在虚拟机上安装 Linux 系统来执行操作&#xff0c;以下是安装的软件及版本&#xff1a; System: CentOS Linux release 7.6Docker: 24.0.5Prometheus: v2.37.6Consul: 1.6.1 docker 安装prometheus,alertmanage,说明一下这里直接将…

WIN10自带查看硬盘运行时间的指令

#创作灵感# 之前一直在捣腾电脑&#xff0c;最近又搞了个R720XD&#xff08;后续会有分享&#xff09;&#xff0c;所以对硬盘比较关注&#xff0c;查了一下硬盘方面的一些坑&#xff0c;机械硬盘最关注的问题就是运行时间了。 #正文# 查看硬盘运行时间需要用到Get-Disk指令&a…

(学习打卡2)重学Java设计模式之六大设计原则

前言&#xff1a;听说有本很牛的关于Java设计模式的书——重学Java设计模式&#xff0c;然后买了(*^▽^*) 开始跟着小傅哥学Java设计模式吧&#xff0c;本文主要记录笔者的学习笔记和心得。 打卡&#xff01;打卡&#xff01; 六大设计原则 &#xff08;引读&#xff1a;这里…

Vue 中的 ref 与 reactive:让你的应用更具响应性(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Android14之audit2allow自动生成Selinux规则(一百七十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…