我的下载只是提供来自本地文件系统的静态zip文件,该文件系统适用于Chrome和Firefox,但不适用于IE8。
该网站使用SSL在localhost上运行,但我在IE中收到以下错误消息。
无法下载/从localhost下载。
无法打开此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));
}
答案 0 :(得分:2)
这是最终对我有用的东西。就我而言,OnActionExecuted上有一个全局ActionFilter,它将缓存控制设置为“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";
}
}
答案 1 :(得分:1)
以下问题中的信息可以帮助您......
Struts application - unable to download file through https on IE