.net – 为什么我的文件结果文件名损坏了IE9?
发布时间:2020-12-16 03:23:34 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试为我的用户生成并返回文件.某些文件名包含unicode字符:a?a.pdf.当尝试在IE 9中下载它们时,文件名被破坏,下载如下所示: 在Chrome中,它按预期工作.这是return语句: return File(fileStream: stream,contentType: System.Net.Mime.MediaTypeNames.
我正在尝试为我的用户生成并返回文件.某些文件名包含unicode字符:a?a.pdf.当尝试在IE 9中下载它们时,文件名被破坏,下载如下所示:
在Chrome中,它按预期工作.这是return语句: return File(fileStream: stream,contentType: System.Net.Mime.MediaTypeNames.Application.Octet,fileDownloadName: myModel.Name + "." + pub.OutputFileType); 我该如何解决IE 9的问题? 解决方法
似乎这对IE9来说根本不可行,因为评论中的namesv状态.我最终通过滥用浏览器功能解决了这个问题:当它请求像/foo/file??.pdf这样的东西并返回一个文件时,会使用URL中的“filename”.
所以,我创建了一个新的路线,将我的动态下载定位到它,并在动作中执行此操作: if (Request.Browser.Browser == "IE" && Request.Browser.MajorVersion == 9) { // The filename comes from the Route used,which is like host/Print/File.pdf Response.Clear(); Response.AddHeader("Content-Disposition","attachment"); Response.ContentType = System.Net.Mime.MediaTypeNames.Application.Octet; Response.Charset = "utf-8"; Response.HeaderEncoding = UnicodeEncoding.UTF8; Response.ContentEncoding = UnicodeEncoding.UTF8; byte[] buffer = new byte[4096]; int count = 0; while ((count = stream.Read(buffer,buffer.Length)) > 0) { Response.OutputStream.Write(buffer,count); Response.Flush(); } Response.End(); return null; } else { return File( fileStream: stream,fileDownloadName: compilation.Name + "." + pub.OutputFileType); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在asp.net中连接与断开的体系结构
- asp.net-core – Services.AddOptions()含糊不清
- asp.net – AdBlock在.NET 4.5网站上阻止CSS和图像
- asp.net-mvc – 将角色添加到ADFS IPrincipal
- ASP.NET和System.Diagnostics跟踪 – 我错过了什么,或者这是
- 如何设置默认页面asp.net
- asp.net – 混合Windows / Forms身份验证跨站点
- asp.net-mvc – 授权标签如何工作? – Asp.net Mvc
- asp.net-mvc – 如何在我的Asp.net Mvc中使用linq2sql存储库
- [ASP.NET] 移除Wizard按钮
推荐文章
站长推荐
- asp.net – MapRoute和MapPageRoute有什么区别?
- asp.net – 如何从ajax调用web api Controller
- asp.net – ASP .Net Textbox Textchanged事件
- asp.net-mvc – ASP.NET MVC – 查看多个模型
- .net – FormsAuthenticationModule是否检测到…
- asp.net – 在客户端启用/禁用RequiredValidator
- asp.net-mvc-3 – 如何在Razor中创建一个else if
- 请帮助我了解ASP.NET控件的AutoPostBack属性
- asp.net – 为什么IIS Express使用而不是?
- 什么是ASP.NET MVC中的环境路由值及其工作原理?
热点阅读