返回
.NET Core中的File和PhysicalFile
2019-04-03 7336 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");
相关阅读
C# .NET Core使用SharpZipLib库分割压缩超大文件
PluginCore 基于 ASP.NET Core 的轻量级插件框架
.NET Core使用DM.DmProvider库连接达梦数据库
ASP.NET MVC和ASP.NET Core的区别是什么?
VS创建.NET Core项目使用Docker方式部署到Linux服务器
.NET Core本地调试101 Switching Protocols是什么请求?
使用try-convert工具把.NET Framework项目迁移到.NET Core
.NET Core分部视图PartialView用法
相关帖子
Switch模拟器Yuzu停运 Nuzu和Suzu成Yuzu平替
魔兽世界正式服 会闪现的小狐狸勒尼小宠物获取方法
Switch 双人成行It Takes Two中文nsp网盘下载
在房地产领域,有个经久不衰的鬼故事,那就是:房产税!
Binance 官方存 ETH 返 BNB挖矿/奖励是真的吗?揭秘骗局背后真相与防骗技巧
OpenClaw 如何赚钱?普通人的 7 种变现方式与真实案例解析(2026)
扬帆云机场安全稳定吗?深度解析扬帆云机场的加速性能与使用体验
wallless机场怎么样?wallless官网打不开,不能用了?wallless机场跑路了?推荐替代 – DOVE加速器
匿名用户
666
zhuce3721
141414