我有一个下载,它只提供一个来自本地文件系统的静态zip文件,适用于Chrome和Firefox,但不适用于IE8。
网站在本地主机上运行SSL,但我在IE中得到以下错误信息。
无法从本地主机下载。
无法打开此Internet站点。请求的站点是不可用或无法找到。请稍后再试。
public ActionResult Download(long batchID)
{
var batchFilePath = string.Format(BatchOrderReportsFolder + "\Batch-{0}\Batch-{0}.zip", batchID);
if (!System.IO.File.Exists(batchFilePath)) {
return RedirectToAction("Index", "Error");
}
return File(batchFilePath, "application/zip", Path.GetFileName(batchFilePath));
}
这是我最终成功的方法。在我的例子中,onactionexecute上有一个全局ActionFilter,它将cache-control设置为no-cache。
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
var browserInfo = Request.Browser.Browser;
if (filterContext.Result is FileResult) {
filterContext.HttpContext.Response.CacheControl = browserInfo == "IE" ? "private" : "no-cache";
}
}
下列问题中的信息应该可以帮助你…
Struts应用程序-无法在IE上通过https下载文件