返回
.NET Core中的File和PhysicalFile
2019-04-03 7036 2
最近在把.NET Framework的项目转成.NET Core,中间遇到不少坑,原来一个下载文件的地方突然又报了FileNotFoundException: Could not find file异常。查看源代码发现是Controller里原来的return File()这个方法在Core里跟之前是不一样了。

原来代码里导出Excel的时候是这样写的:
var fileName = System.IO.Path.GetTempFileName() + ".xlsx";
//略去将数据写入文件部分代码
return this.File(fileName, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "导出数据.xlsx");看了这个File方法的签名:
public virtual VirtualFileResult File(string virtualPath, string contentType, string fileDownloadName);
在.NET Core里,第一个参数改为virtualPath是虚拟路径了,而现在文件是保存在临时文件夹里的,那要如何解决呢?
原来.NET Core提供了PhysicalFile这个方法,改成下面这样就可以了:
return this.File(PhysicalFile, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "导出数据.xlsx");
相关阅读
.NET Core Razor page/MVC 返回json忽略空属性
.NET Core获取请求者真实IP
ASP.NET Core多环境配置
.net core md5加密与php不一致
.NET Core开发常用命令
.NET Core MD5加密
.NET Core读写文件的方法
Asp.Net Core进程内托管 和 进程外托管的区别
相关帖子
Solana生态的叙事和发展前景
什么是 Reddit?国内无法访问 Reddit 解决方法
Blazor Error: Connection disconnected with error 'TypeError: Failed to fetch'.
2025 年最佳付费外网加速器排行榜:8 款高性价比加速工具精选
Tolink加速器 — 全面评测专业 V2Ray机场服务(2025 最新体验指南)
网易重新代理魔兽国服是真的吗?
常用音频视频文件.mp4 .rmvb .mkv .mov .mpeg .wmv .flv的MIME类型
2025 年比特币价格预测:机构看多至 25 万美元,警惕波动风险
匿名用户
666
zhuce3721
141414