Написание zip-файла не работает в IE7 - PullRequest
3 голосов
/ 22 апреля 2009

Я унаследовал старое приложение, которое хранит zip-файл в базе данных и нуждается в извлечении этого файла. В Firefox работает нормально, я могу открыть zip и каждый файл внутри него в порядке. Когда я запускаю его в IE7, я получаю следующую ошибку.

Internet Explorer не может загрузить ProductContentFormImage.aspx с локального хоста.

Internet Explorer не смог открыть этот интернет-сайт. Запрашиваемый сайт либо недоступен, либо не найден. Пожалуйста, попробуйте позже.

Я использую код ниже.

byte[] content = (byte[])Session["contentBinary"];

Response.ClearContent();
Response.ClearHeaders();
Response.Clear();

Response.Buffer = true;
Response.Expires = 0;
Response.ContentType = "application/zip";
Response.AddHeader("Content-Length", content.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=content.zip");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.BinaryWrite(content);
Response.End();

Ответы [ 2 ]

6 голосов
/ 22 апреля 2009

Это странная маленькая ошибка, специфичная для IE.

По сути, проблема возникает, когда вы устанавливаете срок действия на 0.

IE в основном проходит следующий процесс:

  1. IE определяет, что файл является чем-то, что нужно «загрузить», в результате чего IE открывает всплывающее окно «Загрузка файла».

  2. Как только пользователь нажимает «Открыть» или «Сохранить», IE пытается загрузить файл, но, поскольку он настроен на немедленное истечение срока, IE отключается.

Установите для своего срока действия небольшое ненулевое число, например, 1 минуту, и проблема должна исчезнуть.

1 голос
/ 16 августа 2010

Я обнаружил, что установка конфиденциальности в HttpCacheability устраняет проблему

context.Response.Cache.SetCacheability(HttpCacheability.Private);
...