内容 - 处置附件文件名,在InterNet Explorer中有空格

时间:2012-06-22 08:41:21

标签: internet-explorer asp-classic

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”。

1 个答案:

答案 0 :(得分:3)

如果您的文件名包含空格,则它们将被URL编码。 编码的空格字符实际上是%20,我们可以在文件名中看到。

为避免这种情况,您只需将空格替换为其他字符,例如_

Response.AddHeader("Content-Disposition", "attachment; filename=\"" + 
   encodeURIComponent(filename.Replace(" ", "_")) + 
"\"");