2010-11-11 48 views
1

我遇到了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,附加(其附加「附加」到延期)

有沒有人遇到過這種問題?

感謝

回答

7

它幫助我:

 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

0

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

之前

  Response.Charset = encoding.WebName; 

解決這對我來說

相關問題