文件下载问题:文件名被空格截断!

Abd*_*MAL 16 asp.net c#-4.0

当我正在使用以下代码从服务器下载文件:

Response.AddHeader("Content-Disposition", "attachment; filename=" + 
Server.UrlPathEncode(Path.GetFileName(_Filename)));
Run Code Online (Sandbox Code Playgroud)

问题是在文件名中有空格时,使用此代码,服务器会在找到第一个空格时自动拆分!

我希望知道为什么以及解决方案是什么?

Chr*_*isF 41

您需要用双引号括起文件名.

string filename = Server.UrlPathEncode(Path.GetFileName(_Filename)));
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
Run Code Online (Sandbox Code Playgroud)

否则,代码假定文件名在第一个空格处结束.

你可能不需要Server.UrlPathEncode.


Abd*_*MAL 5

我找到了解决方案:)

我们必须用双引号括起文件名,如:

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

但到目前为止,我对这种分裂没有任何想法?