Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > IE8:Open file-в названии файла вместо пробела %20


Автор: lankin 8.8.2011, 13:18
Есть такая проблема: по линку с сайта открывается диалог для скачивания / просмотра файла (название файла, например "my file.xls")

Open | Save | Cancel

Если сохраняю - все хорошо, сохраняется как my file.xls
Если открываю - и в диалоге my%20file.xls и потом в экселе файл называется как my%20file.xls

как это вылечить?

хэндлером в response добавляются такие данные:
context.Response.AddHeader("Content-Type", "application/ms-excel");
context.Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}", fileName)); где filename это "my file.xls"

Автор: lankin 8.8.2011, 13:47
на форму мелкомягких написано "It sounds a bug in IE8, please Update IE8 to IE9")))

Автор: jonie 8.8.2011, 19:50
Код

                if (context.Request.Browser.Browser == "IE")
                {
                    var fileName = HttpUtility.UrlPathEncode(attachment.FileName);
                    context.Response.AppendHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
                }
                else
                {
                    context.Response.AddHeader("Content-Disposition",
                                               string.Format("attachment;filename=\"{0}\"", attachment.FileName));
                }

Автор: lankin 9.8.2011, 06:23
нет jonie, не работает это, я уже пробовал. Для Сохранения работает, а для открытия - нет.

Автор: jonie 9.8.2011, 11:09
хы. я невнимательно прочитал тему... странная эта штука, этот IE...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)