Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 具有特定文件名和Safari或Chrome的ASP.NET MVC文件结果_Asp.net Mvc_Google Chrome_Safari_Fileresult - Fatal编程技术网

Asp.net mvc 具有特定文件名和Safari或Chrome的ASP.NET MVC文件结果

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和

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和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; 
帮我解决了这个问题