ASP.NET CORE WEBAPI文件下载
最近要使用ASP.NET CORE WEBAPI用来下载文件,使用的.NET CORE 3.1。考虑如下场景: 文件是程序生成的。 文件应该能兼容各种格式。 浏览器可以感知进行下载。 准备 经过简单的调研,得到以下结论。 ASP.NET CORE 提供FileResult这种类型的ActionResult,可以直接返回文件结果,不需要直接处理HttpResponse。 通过Stream可以直接返回文件流供浏览器下载。 FileStreamResult是FileResult的具体实现,返回值应该是此类对象。 Stream有多种类型,适合直接内存中生成文件对象的是MemoryStream。 对目标有了基础的了解,就可以开始动手实现了。 实现 建立好ASP.NET CORE WEBAPI工程,把生成文件的代码独立出来一个函数。我这里需要是下载一个CSV格式的文件,因此生成一个CSV文件。 对于磁盘上的文件,可以使用FileStream对象,由于我这里需要运行中生成这个文件,需要使用MemoryStream。 using var stream = new MemoryStream(); using var writer = new StreamWriter(stream); //生成标题 var propCollection = ttype.GetProperties(); foreach