我有一个非常有趣的问题,只有特定的IE实现。我有一个ASPX页面,用于将文件写入用户,作为该过程的一部分,页面使用以下代码将文件写入用户。
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=download" + System.IO.Path.GetExtension(oInfo.SupportingFilePath));
Response.ContentType = "application/octet-stream";
Response.WriteFile(Server.MapPath(oInfo.SupportingFilePath));
Response.End();
在99.5%的情况下,这种情况很好,但是,在IE中仅在特定计算机上的某些罕见情况下,系统会提示用户下载.aspx页面,和/或给出错误消息。
任何人都知道这里发生了什么?
答案 0 :(得分:1)
根据RFC2231,MIME标头的参数值必须包含在双引号中:http://www.ietf.org/rfc/rfc2231.txt(如果您感兴趣,请参阅第3页)。 它应该类似于“attachment; filename =”“download”+ System.IO.Path.GetExtension(oInfo.SupportingFilePath)+“”“”);
答案 1 :(得分:0)
虽然这不应该发生,因为你设置了ContentType
和content-disposition
,我相信IE的内置MIME嗅探/处理是造成这里问题的原因。以下是您可以尝试的几种解决方法/黑客攻击:
我仍然遇到问题,正如文件here所述,但我希望其中一个有帮助。