Próbuję umożliwić użytkownikowi pobranie arkusza kalkulacyjnego Excel z naszej strony, poprzez przycisk, który przekierowuje przez to:Pobieranie plików za pośrednictwem protokołu HTTPS w IE8 przy użyciu ASP.NET
Response.Redirect(string.Format("../excel/ExcelForm.aspx?pathName=&fileNameDisplay={0}&fileNameUnique={1}", "spreadsheet.xls", fileName));
strona aspx tylko odsyła plik za pośrednictwem obiektu Response, tak:
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileNameDisplay);
Response.WriteFile(Server.MapPath(pathName + fileNameUnique));
Response.Flush();
Response.End();
Wszystko działa dobrze na moim komputerze, ale gdy jesteśmy wprowadzenie go na serwerze, https w połączeniu z no- ustawienia pamięci podręcznej dają nam komunikat "Internet Explorer nie może pobrać [blahblahblah]". Ustawienia pamięci podręcznej na stronie wyświetlającej przycisk programu 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();
Po usunięciu tych linii wszystko działa dobrze. Jednak nie wolno mi ich usuwać z innych powodów. Więc próbowałem dodając następującą linię do ExcelForm.aspx tuż przed dodaje rzeczy do nagłówka:
Response.ClearHeaders();
który właśnie daje mi „Internet Explorer nie może pobrać ExcelForm.aspx z [url]”. I właśnie tam utknąłem. Propozycje?
komputer mówi tak! –
Jesteś właścicielem \ o /. Pracowałam jak czar \ o/ –