下载文件名中包含国际字符的文件

时间:2011-11-03 07:26:37

标签: c# asp.net-mvc

在我的应用程序中,我正在上传一个文件名中包含瑞典字符的文件。它工作正常。 但是当我尝试下载它时,我收到一个错误:“在邮件标题中找到了一个无效的字符”..你能帮忙解决这个问题吗? 请参阅我的代码

public ActionResult Download(Guid id)
{
   var attachment = AttachmentService.GetAttachmentById(id);
   var cd = new ContentDisposition
                {
                  FileName = Utility.GetCleanedFileName(((FileAttachment)attachment).FileName),
                  Inline = false,
                };

   var file = File("\\App_Data" +((FileAttachment)attachment).FilePath, "Application");

   Response.ClearHeaders();
   Response.Clear();
   Response.ContentType = file.ContentType;
   Response.AppendHeader("Content-Disposition", cd.ToString());

   var filePath = "\\App_Data" + ((FileAttachment) attachment).FilePath;

   Response.WriteFile(filePath);
   Response.End();

   return file;
}

1 个答案:

答案 0 :(得分:1)

请尝试使用HttpUtility.UrlPathEncode对文件名进行编码。

http://msdn.microsoft.com/en-us/library/system.web.httputility.urlpathencode.aspx