ASP.NET - 当文件名包含空格时下载文件

时间:2012-03-24 12:06:25

标签: asp.net

我想从服务器下载文件。下载时我想更改文件名。 但是当文件名包含空格时,我无法完全更改文件名。

我的代码如下

Response.AddHeader("content-disposition", "attachment; filename=" + fileName);

这允许用户将文件保存到他们的计算机。 但是当我保存文件时,只保存文件名的第一个单词。

例如。我想将文件名称为(“CCNA Q& A.pdf”),但文件另存为(“CCNA”)

我想知道如何用空格保存文件名。

4 个答案:

答案 0 :(得分:0)

您是否尝试过Server.UrlEncode()? 或者你可以省略所有非字母字符('', - 等)和_s(正则表达式替换)。


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

答案 1 :(得分:0)

firefox中的

Server.UrlEncode()将用%20替换空格 只需将文件名放在双引号filename = "\"" + filename + "\"";

之间

答案 2 :(得分:0)

我遇到了同样的问题,因为我试图下载名称中包含空格的文本文件。我用UrlDecode函数解决了这个问题。当浏览器将空格转换为' +'符号,使用解码功能需要转换这些' +'到空间。

fileName = Server.UrlDecode(fileName);
Response.AddHeader("content-disposition", "attachment; filename=\"" + fileName + "\"");

答案 3 :(得分:0)

您必须将其包装在其他引号中:

Response.AddHeader("content-disposition", "attachment; filename=\"" + fileName + "\"");