【发布时间】:2011-09-06 04:43:34
【问题描述】:
在我的 asp.net mvc 应用程序中,我有代码:
response.ContentType = "application/octet-stream";
response.AddHeader("Content-Disposition", "attachment;filename=" +
HttpUtility.UrlEncode(attachment.FileName));
这样所有的中文字符都被url编码为%5C%2D之类的东西。在 IE/Chrome 中,用户下载文件时,会得到中文文件名(即 IE/Chrome 会自动对文件名进行 url-decode)。但在 Firefox 中,他们会得到类似 %5C%2D%0A.docx 的信息。现在我要删除代码中的HttpUtility.UrlEncode。但在此之前,我想确认在这种情况下不存在安全问题。请给我一些想法好吗?
编辑 Corbin 的回答是正确的。但是去掉文件名的url-encoding后,一些使用老版本IE的用户会得到奇怪的乱七八糟的文件名。最后我只为那些用户做 url-encode。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3 firefox urlencode