我编写了以下c#代码,用于下载我的应用程序中的附件,当我运行代码时,我可以使用Mozilla,Internet Explorer下载文件,但这在Google Chrome中无效。
string base64FileString = result;
byte[] binaryFile = Convert.FromBase64String(base64FileString);
Response.ContentType = "application/octet-stream";
Response.AddHeader("content-disposition", String.Format("attachment; filename=\"{0}\"", Request.QueryString["FILENAME"]));
Response.Clear();
Response.BufferOutput = false;
Response.ClearContent();
Response.BinaryWrite(binaryFile);
Response.Flush();
Response.Close();
任何人都可以帮助我在Chrome中下载需要做的更改
答案 0 :(得分:3)
Google Chrome浏览器无法打开"文件保存"如果"application/octet-stream"
是您对表单的回复,则为您提供窗口。
如果您知道,内容类型应该是已知的内容类型。例如。 "application/pdf"
,"image/png"
或其他。见Complete list of MIME types
有关详细信息,请参阅此问题What could keep Chrome from downloading files?。
答案 1 :(得分:0)
您可以尝试添加Content-Length
标头,但不确定它是否有效:
System.IO.FileInfo fl = new System.IO.FileInfo(downloadFilePath);
this.HttpContext.ApplicationInstance.Context.Response.AddHeader("Content-Length", fl.Length.ToString());
答案 2 :(得分:0)
同一问题使我恐惧了几个月。这是我解决的方法。
注意:根据我到目前为止在互联网上所读的内容,我相信此修复程序适用于IIS> 7。 我使用的是IIS 10,因此上述步骤适用于IIS 10。
希望对您有所帮助。