.net core 8版本读取wwwroot目录下的静态文件方法,通过访问接口可以直接信息访问查看的方式

本文主要是介绍.net core 8版本读取wwwroot目录下的静态文件方法,通过访问接口可以直接信息访问查看的方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、安装Nuget依赖包:Microsoft.AspNetCore.StaticFiles
2、在Program.cs中注册中间件

app.UseStaticFiles();

3、将业务接口和实现类在Program.cs中注入到运行时

builder.Services.AddScoped<IModelServive,ModelServiveImpl>();

4、新建IModelServive接口,用于获取文件类型

using Microsoft.AspNetCore.Mvc;namespace digitization_model.Service;public interface IModelServive
{String getFileType(String fileName);
}

5、定义接口实现类

using System.Net;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;namespace digitization_model.Service.Impl;public class ModelServiveImpl : IModelServive
{public String getFileType(String fileName){String extension = Path.GetExtension(fileName).ToLowerInvariant();switch (extension){case ".txt": return "text/plain";case ".html": return "text/html";case ".pdf": return "application/pdf";case ".doc": case ".docx": return "application/msword";case ".xls": case ".xlsx": return "application/vnd.ms-excel";// 添加更多类型...default: return "application/octet-stream";}}
}

6、定义控制器

using System.Runtime.InteropServices.JavaScript;
using digitization_model.Service;
using Microsoft.AspNetCore.Mvc;namespace digitization_model.Controller;[ApiController]
[Route("[controller]")]
public class ModelController : ControllerBase
{private readonly IModelServive modelServive;private readonly IWebHostEnvironment _env;public ModelController(IModelServive modelServive,IWebHostEnvironment _env){this.modelServive = modelServive;this._env = _env;}[HttpGet("getFileUrl/modelFilePath/{modelFilePath}/fileName/{fileName}")]public IActionResult getFileUrl(String modelFilePath,String fileName){try{string filePath = Path.Combine(_env.WebRootPath+"/"+modelFilePath, fileName);if (!System.IO.File.Exists(filePath)){return NotFound(); // 如果文件不存在,返回404}// 获取文件类型并设置Content-Typestring contentType = modelServive.getFileType(fileName);// 读取文件内容并作为附件发送,以便浏览器决定如何处理(预览或下载)var fileStream = new FileStream(filePath, FileMode.Open);return File(fileStream, contentType, fileName);}catch (Exception ex){// 记录异常或处理错误return StatusCode(StatusCodes.Status500InternalServerError, ex.Message);}}}

这篇关于.net core 8版本读取wwwroot目录下的静态文件方法,通过访问接口可以直接信息访问查看的方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971021

相关文章

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分