На сайте ASP.NET WebForms 2.0 мы сталкиваемся с периодически возникающей ошибкой в IE6, из-за которой попытка загрузки файла приводит к тому, что содержимое отображается непосредственно в браузере в виде текста, а не отображается диалоговое окно сохранения файла. Наше приложение позволяет пользователю загружать как PDF, так и CSV файлы.
Код, который мы используем:
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", "attachment;filename=\"theFilename.pdf\"");
response.ContentType = "application/pdf";
response.BinaryWrite(MethodThatReturnsFileContents());
response.End();
Это вызывается из обработчика событий щелчка с выделенным кодом элемента управления сервером кнопки.
Куда мы пойдем не так с этим подходом?
Редактировать
После ответа Джеймса на этот пост код, который я использую сейчас, выглядит следующим образом:
HttpResponse response = HttpContext.Current.Response;
response.ClearHeaders();
// Setting cache to NoCache was recommended, but doing so results in a security
// warning in IE6
//response.Cache.SetCacheability(HttpCacheability.NoCache);
response.AppendHeader("Content-Disposition", "attachment; filename=\"theFilename.pdf\"");
response.ContentType = "application/pdf";
response.BinaryWrite(MethodThatReturnsFileContents());
response.Flush();
response.End();
Однако я не верю, что любое из внесенных изменений решит проблему.