Response.BinaryWrite не работает с Safari в MAC - PullRequest
0 голосов
/ 03 января 2012

Я использую следующий код для отправки PDF в браузер

        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("Content-Length", fileBytes.Length.ToString());
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(fileBytes);
        Response.Flush();
        System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();

Работает хорошо (pdf правильно встроен в браузер) для всех браузеров, кроме Safari (версия 5.x) в MAC. Кроме того, он работает правильно для Firefox и Chrome в MAC.
Мне интересно, это проблема браузера? или что-то не так с Response.BinaryWrite?

1007 ** [редактировать] 1009 ** Поведение Safari, PDF не загружается вообще. Один индикатор выполнения отображается и продолжает загружаться, может быть, это связано с установленным плагином PDF? Итак, как выяснить, почему такое поведение в Safari?

[Изменить]
Эта ошибка регистрируется в консоли инструментов разработчика Safari «Не удалось загрузить ресурс: загрузка обработана подключаемым модулем», которая, по-видимому, связана с подключаемым модулем PDF.

1 Ответ

0 голосов
/ 03 января 2012

Попробуй, у меня все нормально работает

        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "application/pdf";
        Response.Buffer = true;
        Response.AppendHeader("Accept-Header", attachmentObj.AttachmentFile.Length.ToString());
        Response.AppendHeader("content-disposition", "attachment; filename=\"" + HttpUtility.UrlEncode(attachmentObj.Description, System.Text.Encoding.UTF8) + "\"");
        Response.AppendHeader("Pragma", "public");
        Response.BinaryWrite((byte[])attachmentObj.AttachmentFile.ToArray());        
        Response.Flush();
        Response.End();
...