博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正确设置Firefox下载文件文件名的方法
阅读量:7281 次
发布时间:2019-06-30

本文共 721 字,大约阅读时间需要 2 分钟。

不同的浏览器需要特殊设置,主要是火狐比较特殊,火狐可能给文件名加上“%0d%0a"这样的编码字符(换行的意思)。不得不佩服网上的高手,这也能解决。

1 [HttpGet] 2 public FileResult Download(string id) 3 { 4      var document = service.GetDocument(id); 5      var fullName = Path.Combine(Root, document.FullName); 6      string browser = HttpContext.Request.UserAgent.ToUpper(); 7      var fileName = document.Name; 8      if (browser.Contains("FIREFOX")) 9           fileName = "=?UTF-8?B?" + Convert.ToBase64String(Encoding.UTF8.GetBytes(fileName)) + "?=";10      else11           fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8);12      return File(fullName, document.ContentType, fileName);13 }

对于火狐的处理(标红的代码),我也是醉了,根本没看懂,但问题解决了!

【参考文献】

转载于:https://www.cnblogs.com/tuty/p/6002493.html

你可能感兴趣的文章
cuda c例程学习——eigenvalues(1)
查看>>
通过本地文件数据库查询手机归属地
查看>>
uva 10152 ShellSort
查看>>
前端之放大镜
查看>>
民航飞机专业词汇
查看>>
数据类型和变量
查看>>
通过excel快速拼接SQL
查看>>
json数据类型
查看>>
vue-cli的安装使用
查看>>
js实现页面重定向
查看>>
js数组
查看>>
点滴积累【other】---HTTP 错误 404.13 - Not Found,请求筛选模块被配置为拒绝超过请求内容长度的请求(转载)...
查看>>
C与C++,面向过程与面向对象
查看>>
第37件事 极简设计的3个方面
查看>>
Docker安装(yum方式 centos7)
查看>>
运算符
查看>>
一个简单的转换字母大小写的方法
查看>>
hibernate中evict()和clear()的区别
查看>>
学习web components
查看>>
PHP 将秒数转换成时分秒
查看>>