首页 > 编程 > .NET > 正文

ASP.NET实现下载功能的中文文件名乱码处理

2024-07-10 12:55:23
字体:
来源:转载
供稿:网友
早几天在系统中添加文件管理的下载功能, 要求在aspx文件中实现, 以进行权限的控件,于是添加下列代码:...response.contenttype = mime; //相应的mime typeresponse.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://localhost/download.aspx?id=123, filename为"下载.pdf", 我们只要把下载url改为 http://localhost/download.aspx/下载.pdf?id=123 可, 上面下划线标注的那句代码则可以注释掉了, 试一下, 结果一定让你非常满意!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表