Asp.net mvc 具有特定文件名和Safari或Chrome的ASP.NET MVC文件结果
FileResult返回具有特定文件名的文件时遇到问题。在数据库中,文件名仅为和ID+扩展名(例如:456789.mp3) 这段代码Asp.net mvc 具有特定文件名和Safari或Chrome的ASP.NET MVC文件结果,asp.net-mvc,google-chrome,safari,fileresult,Asp.net Mvc,Google Chrome,Safari,Fileresult,FileResult返回具有特定文件名的文件时遇到问题。在数据库中,文件名仅为和ID+扩展名(例如:456789.mp3) 这段代码 FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); return File(fs, "application/octet-stream", "myfile.mp3"); 在除Webkit浏览器(Chrome、Safari)之外的所有浏览器中都能正常工作。Chrome和
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
return File(fs, "application/octet-stream", "myfile.mp3");
在除Webkit浏览器(Chrome、Safari)之外的所有浏览器中都能正常工作。Chrome和Safari将文件作为原始文件名(456789.mp3)接收。当我添加带有
Response.AppendHeader("Content-Disposition", "attachment;filename=myfile.mp3");
Safari以myfile.mp3attach的形式接收文件(注意扩展名后面附加了“attach”),而Chrome以myfile.mp3,attach的形式接收文件(扩展名后面附加了“attach”)
有没有人经历过这种问题
谢谢它帮助了我:
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);
它帮助了我:
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);
放置
Response.Clear();
Response.ClearHeaders();
以前
Response.Charset = encoding.WebName;
帮我解决了这个问题
Response.Clear();
Response.ClearHeaders();
以前
Response.Charset = encoding.WebName;
帮我解决了这个问题