Estoy tratando de hacer que sea posible para el usuario para descargar una hoja de cálculo Excel desde nuestro sitio, por tener un botón que redirigen a través de este:La descarga de un archivo a través de https en IE8, utilizando ASP.NET
Response.Redirect(string.Format("../excel/ExcelForm.aspx?pathName=&fileNameDisplay={0}&fileNameUnique={1}", "spreadsheet.xls", fileName));
la página aspx simplemente devuelve el archivo a través del objeto de respuesta, así:
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileNameDisplay);
Response.WriteFile(Server.MapPath(pathName + fileNameUnique));
Response.Flush();
Response.End();
Todo funciona muy bien en mi máquina, pero cuando nos estamos poniendo en el servidor, el https en combinación con no- la configuración de caché nos da un error que dice "Internet Explorer no puede descargar [blahblahblah]". La configuración de caché en la página que muestra el botón Excel:
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Expires = 0;
HttpContext.Current.Response.AddHeader("Pragma", "no-cache");
HttpContext.Current.Response.AddHeader("cache-control", "private, no-cache, must-revalidate no-store pre-check=0 post-check=0 max-stale=0");
HttpContext.Current.Response.Cache.SetNoServerCaching();
Cuando elimino esas líneas, todo funciona bien. Sin embargo, no puedo eliminarlos por otros motivos. Así que traté de añadir la siguiente línea al ExcelForm.aspx justo antes de que añade cosas a la cabecera:
Response.ClearHeaders();
Lo cual me da "Internet Explorer no puede descargar desde ExcelForm.aspx [url]". Y ahí es donde estoy atascado. Sugerencias?
ordenador dice sí! –
Tienes \ o /. Trabajó como un encanto \ o/ –