Response.BinaryWrite не работает с IE6

Я использую следующий код С# в некоторых ASP.NET для отправки файла в браузер:

Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment; filename=" + myFileName);
Response.BinaryWrite(myContent);
Response.End();
Response.Close();

Он хорошо работает с WebDev.WebServer и IIS7, под IE7-8, FF3-4 и Chrome. Но не под IE6. Я не понимаю, почему это может быть проблема, связанная с браузером...


person Francois    schedule 21.06.2011    source источник
comment
Для этого браузера вам, вероятно, также придется добавить заголовок content-length.   -  person Shadow Wizard Wearing Mask V2    schedule 21.06.2011
comment
Что именно не работает в IE6? Вы не получаете файл, это неправильное имя, ..   -  person Hans Kesting    schedule 21.06.2011
comment
это содержание-диспозиция. В некоторых случаях IE6 был чувствителен к регистру.   -  person nothrow    schedule 21.06.2011
comment
То же самое с Content-disposition :( Что не так с IE6: я не получаю файл.   -  person Francois    schedule 21.06.2011


Ответы (3)


Попробуйте добавить заголовок content-length:

Response.AddHeader("content-length", myContent.Length.ToString());

Изменить: еще один, который может потребоваться, это content-type:

Response.AddHeader("content-type", "type here");
person Shadow Wizard Wearing Mask V2    schedule 21.06.2011
comment
Пожалуйста, опишите, что именно происходит в IE6. - person Shadow Wizard Wearing Mask V2; 21.06.2011
comment
Ничего... страница обновляется, IE6 не показывает диалог загрузки файла. - person Francois; 21.06.2011
comment
@ Франсуа, это странно .. вы не можете протестировать на другом сервере, позволяющем хранить файлы, с помощью методов SendFile или TransmitFile? - person Shadow Wizard Wearing Mask V2; 22.06.2011


Спасибо всем, вот ответ: это было связано с Ajax на странице, и запрос Ajax не был отключен, как ожидалось.

person Francois    schedule 22.06.2011