У меня есть страница asp.net, которая отправляет содержимое файла клиенту, поэтому браузер отображает диалоговое окно «Сохранить как» для загрузки файла. Эта страница отображается во всплывающем окне, и когда пользователь нажимает кнопку «Сохранить», она автоматически закрывается и начинается загрузка.
На Windows Server 2003 все работает нормально. На Vista с другими браузерами тоже отлично работает. Но когда я пытаюсь использовать IE7 и Vista, всплывающее окно открывается и закрывается примерно через секунду, не отображая диалоговое окно загрузки файла. Как я могу решить это?
Код, который я использую для генерации ответа:
FileStream fileStream = new FileStream(filePath, FileMode.Open);
int fileSize = (int)fileStream.Length;
byte[] buffer = new byte[fileSize];
fileStream.Read(buffer, 0, (int)fileSize);
fileStream.Close();
Response.Clear();
Response.Buffer = true;
Response.BufferOutput = true;
Response.ContentType = "application / octet - stream";
Response.AddHeader("Content-Length", buffer.Length.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
Response.AddHeader("Extension", Path.GetExtension(filename));
Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1254");
Response.BinaryWrite(buffer);
Response.Flush();
Response.End();
И я открываю всплывающее окно с этим JavaScript:
window.open ('Download.aspx?filename=somefile.ext','downloadWindow','location=0,status=0,scrollbars=0,width=1,height=1');
РЕДАКТИРОВАТЬ: Я исправил пробелы, но, к сожалению, они не являются проблемой.
РЕДАКТИРОВАТЬ 2: : Кажется, что эта проблема не связана с Vista, но только IE. Я также обнаружил, что он работает нормально, когда проект запускается на сервере разработки локально, но при работе с подключенным сервером публикации не удается загрузить файл.