首页 > 系统相关 >.net core部署linux下载文件 文件为中文下载

.net core部署linux下载文件 文件为中文下载

时间:2024-07-09 16:23:09浏览次数:14  
标签:文件 IO core 中间件 System context public 下载

在项目中,需要下载模板,某个文件夹下有excel文件或者word等  文件名为中文的时候在linux服务器下载不了  

如果直接写路由的话在windows下是可以直接访问的,但是core部署在linux上 所以会有些不同

第一种:写一个接口使用流下载

[httpget("download")]

public async Task<FileResult>  DownLoad()

{

  var filePath = System.IO.Path.Path.Join(System.IO.Path.GetDirectoryName(typeof(Program).Assembly.Location),"UpLoad","文件名。xlsx");

         return File(System.IO.File.ReadAllBytes(filePath),"application/octet-stream;charset=utf-8",System.IO.Path.GetFileName(filePath));

return null;

}

 

第二种:使用中间件,写一个解码中间件,然后把文件路径给前端,拼接上端口使用 windos.open 可直接下载

首先先写一个中间件类

public class UrlDecodeMiddleware

{

  private readonly RequestDelegate _next;

      public UrlDecodeMiddleware(RequestDelegate)

      {

  _next=next;

      }

     public async Task Invoke(HttpContext context)

 {

  if(context.Request.Method="Get")

  {

      context.Request.QueryString= new QueryString(HttpUtility.UrlDecode(context.Request.QueryString.Value));

      }

  await _next(context);

    }

}

///拓展方法将中间件加入到请求处理通道中

public static class UrlDecodeMiddlewateExtensions

{

  public static IapplicationBuilder UserUrlDecode(this IApplicationBuilder app)

  {

    return app.UserMiddleware<UrlDecodeMiddleware>();

  }

}

最后在Startup中的Configure中使用

app.UseUrlDecode();  就可以了

标签:文件,IO,core,中间件,System,context,public,下载
From: https://www.cnblogs.com/ztf20/p/18292144

相关文章

  • FPGA bit转bin文件
    首先科普一下什么是bitstream文件FPGA比特流(bitstream)是一种用于配置可编程逻辑器件的数据格式,特别是现场可编程门阵列(FPGA)。比特流包含了硬件逻辑电路、路由信息以及芯片上寄存器和存储器(如查找表LUT)的初始值。通常认为比特流具有厂商特定的格式,因此很难反向工程或理解其内部细......
  • Ps安装包下载「永久版」软件百度云网盘分享
    收集整理:PS全版本软件安装包mac+win通过百度网盘分享的文件:Ps软件链接:https://pan.baidu.com/s/1-DQXmEhQNAGsV6lo-BAf3w?pwd=1009 提取码:1009复制这段内容打开「百度网盘APP 即可获取」资源介绍:AdobePhotoshop,简称“PS”,是由AdobeSystems开发和发行的图像处理软件。......
  • Asp.NET Core WebAPI 设置环境变量值ASPNETCORE_ENVIRONMENT
    默认情况下发布后的环境变量是Production方式一:在文件夹PublishProfiles下的FolderProfile.pubxml文件增加配置<Project><PropertyGroup><EnvironmentName>Development</EnvironmentName></PropertyGroup></Project>表示发布后通过builder.Environment.Env......
  • excel下载功能
    excel下载功能:(就是一个超链接href属性,路径:保存xlsx文件的路径)<ahref="${pageContext.request.contextPath}/file/导入代码模板.xlsx">下载导入模板</a>在webapp下,创建一个file文件夹,把要下载的资源丢进file文件夹中   声明:此博客为个人学习之用,如与其他作品雷同......
  • 下载数据库数据生成excel文件
    下载数据库数据生成excel文件:packagecom.wisdragon.controller.dataQuality;importcom.google.gson.JsonArray;importcom.google.gson.JsonElement;importcom.google.gson.JsonObject;importcom.google.gson.JsonParser;importcom.wisdragon.comm.constant.Constant......
  • Android 11 recovery恢复出厂设置保留某些文件
    /bootable/recovery/recovery.cpprecovery的注释,流程解释!/**Therecoverytoolcommunicateswiththemainsystemthrough/cachefiles.*/cache/recovery/command-INPUT-commandlinefortool,oneargperline*/cache/recovery/log-OUTPUT-combin......
  • NetCore 模板引擎
    HTML模板<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>@Model.Title</title></hea......
  • mormot.core.os--TSynLocker和TSynLocked
    mormot.core.os--TSynLocker和TSynLockedTLightLock{****************TSynLocker/TSynLocked和低级线程特性}type///一个轻量级的独占非重入锁,存储在PtrUInt值中//-在自旋一段时间后调用SwitchToThread,但不使用任何读写操作系统API//-警告:方法是非重入......
  • 【漏洞复现】泛微e-cology——resourceservlet——任意文件读取
    声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。文章目录漏洞描述漏洞复现测试工具漏洞描述泛微e-cology是一款由泛微网络科技开发的协同管理平台,支持人力资源、财务、行政等多功能管理......
  • CoreDNS 概述及运维实践
     概述什么是DNS?域名系统(英语:DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。DNS不仅方便了人们访问不同的互联网服务,更为很多应用提供了,动态服务发现和全局负载均衡......