ASP.NET Core 接口返回文件类型文件名中文乱码


一、问题

返回文件时给定的文件名包含中文

ASP.NET Core 接口返回文件类型文件名中文乱码

浏览器中实际的下载文件名

ASP.NET Core 接口返回文件类型文件名中文乱码

发现文件名中文没有被正确的处理

二、解决方案

返回文件类型时,文件名用Uri.EscapeDataString(fileName)来进行URL编码。

C# 全选
  /// <summary>
  /// 下载报表模板
  /// </summary>
  /// <returns></returns>
  [HttpGet]
  public IActionResult Down(string id)
  {
      var (fileBytes, fileName) = _business.Down(id);
      if (fileBytes == null || fileBytes.Length == 0)
      {
          return NotFound("文件不存在");
      }

      // 添加命名空间:Microsoft.AspNetCore.Http
      Response.Headers.Append("Access-Control-Expose-Headers", "Content-Disposition");

      return File(fileBytes, "application/octet-stream", Uri.EscapeDataString(fileName));
  }

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:ASP.NET Core 服务注入对比:IServiceProvider.GetService vs Lazy<T> 注入性能分析
下一篇:nginx集群中按照url规则指定节点访问
评论列表

发表评论

评论内容
昵称:
关联文章

ASP.NET Core 接口返回文件类型文件名中文
nodeJS中使用shelljs模块中文
ASP.NET Core统一接口返回模型
【推荐】Razor文件编译 ASP.NET Core
.net core MVC页面源文件中文被编码
.net Core编译出现错误:指定的任务可执行文件“sgen.exe”未能运行,文件名或扩展名太长
ASP.NET Core MVC 在过滤器ActionFilter中保存页面的生成的html静态页面文件
ASP.NET Core官网教程,资料查找
ASP.NET Core web API中使用Swagger/OpenAPI(Swashbuckle)
ASP.NET Core MVC中的路由约束
ASP.NET Core 使用 LESS
asp.net core 支持多种身份认证方式
.NET5 ASP.NET Core 添加API限流
asp.net - 在 ASP.NET Core MVC 中嵌套 TagHelper
ASP.NET MVC和ASP.NET Core MVC中获取当前URL/Controller/Action
ASP.NET Core开发者学习路线图
.NET Core 项目 DbProviderFactories.GetFactoryClasses()返回
C# ASP.NET Core开发学生信息管理系统(一)
C# ASP.NET Core开发学生信息管理系统(三)
ASP.NET Core 服务注入对比:IServiceProvider.GetService vs Lazy<T> 注入性能分析

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码