@RedQuark

Как правильно отдавать файл для IE9?

Делаю так:
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
Response.AddHeader("Content-Type", type);
Response.ContentEncoding = Encoding.Default;
Response.HeaderEncoding = Encoding.Default;
Response.WriteFile(path);

Работает! Но если rar архив (например) нажать левой кнопкой мыши и Открыть, а потом нажать Выход из rara и туже нажать туже ссылку правой кнопкой «Сохранить объект как» то имя файла: getfile.htm (где getfile.aspx — это страница в тело которой и помещается файл). Если согласиться и сохранить, то rar его откроет (тело файла правильное). Теперь если второй раз сделать «Сохранить объект как», то имя файла будет правильное. Если же при открытие странице нажать на ссылку один раз (неважно «Сохранить объект как» или «Открыть») то имя будет правильное. Так почему IE9 при комбинации: «Открыть», «Выход», «Сохранить объект как» выдает в имени файла название страницы? Проверил данный алгоритм на других сайтах — данного эффекта не наблюдается. Значит, неправильно отдаю?
P.S.: в FF, Chrome проблем нет, IE 9.0.8112.16421.
P.S.S.: нашел точно такую же ошибку с именем, уже не у себя, а в крупном проекте написанном под SharePoint
  • Вопрос задан
  • 3770 просмотров
Пригласить эксперта
Ответы на вопрос 3
lumega
@lumega
Если есть доступ к настройкам веб-сервера, то можно сделать радикально, сделать rewrite URL, чтобы ваш скрипт был до названия файла, например:
/script_hadle/file.ext
Ответ написан
truekenny
@truekenny
Попробуйте
Content-Type: file/file; name="video.mpg"
Content-disposition: attachment; filename="video.mpg"
Ответ написан
lumega
@lumega
в заголовке можно передать название файла.
Content-Disposition: attachment; filename=«fname.ext»

см. здесь en.wikipedia.org/wiki/List_of_HTTP_header_fields
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы