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> 注入性能分析
下一篇:ASP.NET Core 接口返回文件类型文件名中文乱码
评论列表

发表评论

评论内容
昵称:
关联文章

YES-CMS内容管理系统 售价
PVE硬盘对应SATA口查询

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