Response.Write("<script language=\"javascript\">window.open(with https and pdf
Что мы делаем в 1.1.4332 приложении Asp.Net является следующее:PDF неправильно ошибка в IE6 и IE7 с HTTPS
кнопка инициирует событие сервера, который делает некоторую обработку и помещает данные в объект сеанса после этого выполняется следующий код:
string page = Request.ApplicationPath + "/ApkRapportPage.aspx";
Response.Write("<script language=\"javascript\">window.open('" + page + "','_new');</script>");
это открывает страницу, на которой потоки в формате PDF в новом окне браузера
в основном с помощью следующего кода (я знаю, что материал отсутствует час ere, но на самом деле это не вопрос)
byte [] pdfbytes = Convert.FromBase64String (rapportB64);
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.ContentType = GetContentType(format);
string header = GetContentDispostionHeader(fileName, format, type);
Response.AddHeader("Content-Disposition", header);
Response.BinaryWrite(pdfbytes);
Response.End();
ОК, этот код работает!
Только не в IE6 и IE7 при использовании HTTPS
При использовании IE6 с HTTPS это приводит к экономии, в диалоговом окне (не в формате PDF, который открывается в браузере) При использовании IE7 с HTTPS это приводит к пустому экрану При использовании Firefox он отлично работает
Если я смоделирую дополнительную обработку на стороне сервера в page_load, чтобы поместить необходимые данные в сеанс и заменить кнопку ссылкой, которая открывает одну и ту же страницу генерации pdf в новом окне работает код.
Для фактического применения не требуется получить требуемые данные до нажатия кнопки.
Так что я действительно хотел бы получить следующий код для работы
string page = Request.ApplicationPath + "/ApkRapportPage.aspx";
Response.Write("<script language=\"javascript\">window.open('" + page + "','_new');</script>");
Вопросов: Кто-нибудь знает, почему этот код не работает в IE6 и IE7 при использовании HTTPS? Что необходимо для того, чтобы код работал?
Дополнительно:
- Я попытался не использовать response.write но только JavaScript window.open за кнопку, это имеет тот же эффект
- , когда прибегая к помощи Pdf потоковой передачи, вы можете найти много людей, имеющих , проблема с этим, в основном они устанавливают длины заголовка или другие свойства или статические флаги сжатия файлов в IIS. Я довольно уверенный Я попробовал их все.
- Параметры настройки Adobe Acrobat Reader, настройки браузера или любой другой клиент Настройки сторон не кажутся проблемой . Протестировано на разных машинах , с http работает, с https это не так.
- Переключение между https и http может иметь какое-то отношение к этому, , но когда я устанавливаю IE, чтобы сказать мне, когда я переключаюсь, не происходит переключения во время тестирования.
- При замене window.open части с Response.Redirect то код работает, но только не в новом окне
Любая помощь будет высоко ценится!
В соответствии с просьбой заголовки, как показано Скрипач:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.1
Date: Thu, 05 Mar 2009 14:18:36 GMT
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Content-Disposition: Inline;filename=APKrapport.pdf
Cache-Control: private
Content-Type: application/pdf; charset=utf-8
Content-Length: 28307
Да, спасибо за усилия. Но я все это пробовал. – KeesDijk