最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
ASP.NET实现下载功能的中文文件名乱码处理
时间:2022-11-14 23:24:29 编辑:袖梨 来源:一聚教程网
早几天在系统中添加文件管理的下载功能, 要求在ASPX文件中实现, 以进行权限的控件,
于是添加下列代码:
...
Response.ContentType = mime; //相应的MIME TYPE
Response.AppendHeader("Content-Disposition", "attachment; filename="" +fileName + """);
Response.BinaryWrite(bytes);
Response.End();
...
当fileName中包含中文时, 文件下载保存时, 文件名变成了乱码, 需要用户修改,这也就违被了我设定预设文件名的初衷.
解决办法1: 对fileName进行URL编码, 把下划线标注的那句改为
Response.AppendHeader("Content-Disposition", "attachment; filename="" + Server.UrlEncode(fileName) + """);
便可.
虽然中文乱码问题解决了, 但是还有一个问题: 在测试时, 下载保存的文件名有时会变成该页面的名字(.aspx), 虽然可以把内容下载到本地, 但是需要更改文件名及类型, 这样会给用户带来很大的困惑.
还有一个办法, 可以很简单的解决以上的两个问题:
解决办法2: 假设当前的URL为 http://lo*cal*h*ost/download.aspx?id=123, fileName为"下载.pdf", 我们只要把下载URL改为 http://l**oc*alhost/download.aspx/下载.pdf?id=123 可, 上面下划线标注的那句代码则可以注释掉了, 试一下, 结果一定让你非常满意!
于是添加下列代码:
...
Response.ContentType = mime; //相应的MIME TYPE
Response.AppendHeader("Content-Disposition", "attachment; filename="" +fileName + """);
Response.BinaryWrite(bytes);
Response.End();
...
当fileName中包含中文时, 文件下载保存时, 文件名变成了乱码, 需要用户修改,这也就违被了我设定预设文件名的初衷.
解决办法1: 对fileName进行URL编码, 把下划线标注的那句改为
Response.AppendHeader("Content-Disposition", "attachment; filename="" + Server.UrlEncode(fileName) + """);
便可.
虽然中文乱码问题解决了, 但是还有一个问题: 在测试时, 下载保存的文件名有时会变成该页面的名字(.aspx), 虽然可以把内容下载到本地, 但是需要更改文件名及类型, 这样会给用户带来很大的困惑.
还有一个办法, 可以很简单的解决以上的两个问题:
解决办法2: 假设当前的URL为 http://lo*cal*h*ost/download.aspx?id=123, fileName为"下载.pdf", 我们只要把下载URL改为 http://l**oc*alhost/download.aspx/下载.pdf?id=123 可, 上面下划线标注的那句代码则可以注释掉了, 试一下, 结果一定让你非常满意!
相关文章
- 失控进化飞天载具怎么获得 飞天载具获取方法 09-16
- 白荆回廊逸虚技能是什么 逸虚技能介绍一览 09-16
- 逆战未来竞技模式怎么玩 竞技模式玩法介绍 09-16
- 地下城堡4夜魅怎么玩 夜魅玩法介绍 09-16
- 地下城堡4烈风峡谷怎么过关 烈风峡谷过关攻略 09-16
- 地下城堡4赛拉菲妮怎么玩 赛拉菲妮玩法教学 09-16