因此,我使用了一些代码来强制下载基于ASP.Net的项目。这段代码适用于Firefox和Chrome,因为某些奇怪的原因不能在IE中使用。更奇怪的是,它最初在这三个方面都有效,并且最近在IE中停止了工作。以下是我使用的代码,如果需要进行任何调整或可能出现的问题,请告诉我。
string path = MapPath(fname);
string name = Path.GetFileName(path);
string ext = Path.GetExtension(path);
string type = "Application/pdf";
Response.AppendHeader("content-disposition","attachment; filename=" + path);
Response.WriteFile(path);
Response.End();
更多细节 这是改进的代码,仍然不适用于IE。
string path = MapPath(fname);
string name = Path.GetFileName(path);
string ext = Path.GetExtension(path);
string type = "Application/pdf";
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = type;
Response.AddHeader("content-disposition","attachment; filename=" + path);
Response.WriteFile(path);
Response.End();
答案 0 :(得分:4)
您应该尝试将mime类型设置为“application / octet-stream”。如果您不希望特定处理程序响应mime类型。
答案 1 :(得分:1)
这个代码应该
Response.AddHeader("content-disposition","attachment; filename=" + path);
改为
Response.AddHeader("content-disposition","attachment; filename=" + name + "." + ext);
或
Response.AddHeader("content-disposition","attachment; filename=" + name + ".pdf");
要检查的其他事项
答案 2 :(得分:0)
在顶部添加以下两行,为我修复:
Response.ClearContent();
Response.ClearHeaders();
答案 3 :(得分:0)
问题解决了。它没有经过的原因是由于主页上出现了一个额外的表单,显然是覆盖了按钮。一旦修复,它在所有浏览器中都能正常工作。