抛答案:
1.通过路由指定
[Route("api/download/UBPServer.exe")]
2. 指定File()的 第三个参数
优先级 方法2 大于 方法1
问题来自于一个合并bug,文件xxx.exe, 通过下载变成了 123.msi。但是本地并没有123.msi文件。
判断思考是不是文件名指定问题。(把xxx.exe指定成了123.msi)
于是乎去查了查 .net下指定文件名的问题,记录一下。
方法1的原因:
ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程。在"ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置"一文中,体验了通过模版、惯例、HTTP方法来设置路由,这种做法的好处是把路由模版统一放在了App_Start文件夹下的WebApiConfig类中,方便管理,但缺点是不够灵活。
REST把一切都看成资源,有时候,一个资源连带子资源,比如Customer和Orders密切关联,我们可能希望输入这样的请求:customers/1/orders,但仅仅凭借惯例,很难实现这种路由。而实际上,ASP.NET Web API为我们准备了Route特性,该特性可以直接打到Action上,使用非常灵活、直观。
更多细节: