ASP.NETCore6开启文件服务允许通过url访问附件(图片)

需求背景

最近在做一个工作台的文件上传下载功能,主要想实现上传图片之后,可以通过url直接访问。由于url直接访问文件不安全,所以需要手动开启文件服务。

配置

文件路径如下,其中Files是存放文件的目录:

那么,在Program.cs文件中,可以通过这样配置来开启文件服务:

csharp 复制代码
#region 允许通过url访问文件
app.UseStaticFiles(new StaticFileOptions{
    RequestPath = new PathString("/Files"), // 对外访问的路径
    FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "Files")) // 指定实际物理路径
});
#endregion

其中,RequestPath是前端的请求路径,FileProvider是后端指向的实际物理地址,在这里则指向我的Files文件目录。

配置完成后,前端即可通过http://localhost:5047/Files/your-picture-address.jpg来访问图片。(http://localhost:5047是我的后端项目地址,放上服务器也一样)。

提示

如果前端项目部署在Nginx中(通常指服务器部署),则需要在Nginx中添加一行代理请求,否则无法正常请求。

bash 复制代码
location /Files/ {
	proxy_pass http://134.xxx.xxx.xxx:5047;
}
相关推荐
samble6 小时前
从零搭建灌装监控系统(十八):自定义控件,三色灯与状态指示
c#·wpf·mvvm·modbus·工业控制
jun_bai6 小时前
使用Aspose实现word文档合并,内容替换
windows·c#·word
字节暗面10 小时前
客户端上报不可信:游戏服务端数据校验与对局重演设计
c#·游戏开发·服务端校验·反作弊
chingho10 小时前
GitHub上这10个C#项目,不仅实用,还怪好玩的
c#·github·.net·开源项目
半亩码田12 小时前
C#转Python第5.1篇:异步编程:asyncio vs async/await,语法相似但机制不同
开发语言·python·c#
阿华田51213 小时前
Java 类加载冲突实战:解决 is not an instance of
c#·linq
samble1 天前
从零搭建灌装监控系统(十七):LiveCharts 实时温度曲线
c#·wpf·mvvm·modbus·工业控制
淡海水1 天前
02-07-原理篇-GC暂停时间的本质
开发语言·unity·c#·gc·暂停时间
小羊没烦恼!1 天前
OS X 上使用.NET开发应用程序
开发语言·前端·数据库·人工智能·c#·策略模式
Behavior1 天前
Unity 7.0 Alpha 拆解:编辑器干掉 Mono 换 CoreCLR
c#·unity3d·游戏开发