string filename = Server.UrlPathEncode(Path.GetFileName(_Filename)));
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + encodeURIComponent(filename) + "\"");
我写了这样的代码..
它可以在所有浏览器中正常工作但在Internet Explorer中单击“保存”时工作正常但是单击“打开”时我在文件名中得到%20
..
有人可以让我知道如何克服这个问题
假设文件名是“New text Document.txt”。当我在下载后打开文件时,我希望它具有相同的名称。我不希望将其视为“New_text_Document.txt”。
有办法吗?
在其他浏览器中它适用于我。我在Internet Explorer中只遇到此问题。如果我没有默认编码,我会得到文件名为“New_text_Document.txt”。
答案 0 :(得分:3)
如果您的文件名包含空格,则它们将被URL编码。 编码的空格字符实际上是%20,我们可以在文件名中看到。
为避免这种情况,您只需将空格替换为其他字符,例如_
。
Response.AddHeader("Content-Disposition", "attachment; filename=\"" +
encodeURIComponent(filename.Replace(" ", "_")) +
"\"");