具有特定文件名和Safari或Chrome的ASP.NET MVC FileResult

问题描述:

我遇到了FileResult返回具有特定文件名的文件的问题。在数据库中的文件名是公正和ID +分机(例如:456789.mp3)具有特定文件名和Safari或Chrome的ASP.NET MVC FileResult

这段代码

FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); 
return File(fs, "application/octet-stream", "myfile.mp3"); 

工作的不同之处的Webkit浏览器(浏览器,Safari浏览器)每一个浏览器好。 Chrome和Safari接收文件为原始文件名(456789.mp3)。当我添加页眉与

Response.AppendHeader("Content-Disposition", "attachment;filename=myfile.mp3"); 

Safari浏览器接收文件myfile.mp3attach(通知“附加”附加到扩展?),但Chrome的接收此文件作为myfile.mp3,附加(其附加“附加”到延期)

有没有人遇到过这种问题?

感谢

它帮助我:

 var encoding = System.Text.Encoding.UTF8; 
     Response.Charset = encoding.WebName; 
     Response.HeaderEncoding = encoding; 

      Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", (Request.Browser.Browser == "IE") ? HttpUtility.UrlEncode(fileName, encoding) : fileName)); 

     return File(fs, contentType, fileName); 
+0

谢谢,它帮助我! – 2012-03-15 22:50:01

  Response.Clear(); 
     Response.ClearHeaders(); 

之前

  Response.Charset = encoding.WebName; 

解决这对我来说