Созданный сервером PDF не отображается в IFrame на странице aspx на некоторых (но не на всех) ПК - PullRequest
3 голосов
/ 31 марта 2009

У нас есть IFrame на странице (назовем эту страницу DocViewer.aspx), src которой настроен на другую страницу. Давайте назовем эту другую страницу DocContent.aspx

Перед загрузкой страницы на DocContent.aspx.vb:

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'get pdf bytes from session
    Dim pdfBytes As Byte() = CType(Session("PDFBytes"), Byte())

    'remove pdf bytes from session
    Session.Remove("PDFBytes")

    With Response
        ' Set the response type to PDF
        .ClearHeaders()
        .Buffer = True
        .ContentType = "application/pdf"
        .AddHeader("Content-Disposition", "inline; filename=" & "midoc.pdf")


        .AddHeader("Content-Length", (pdfBytes.GetUpperBound(0) + 1).ToString)
        Response.OutputStream.Write(pdfBytes, 0, pdfBytes.Length)

        .End()
    End With ' response

End Sub

и вот страница DocContent.aspx во всей красе:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="DocContent" Inherits="OurCompany.OurNamespace.DocContent" %>

Причина, по которой мы используем IFrame, заключается в том, что мы можем размещать PDF-файл на странице, которая также запускает некоторые сценарии и имеет дополнительные элементы управления (если выполняется определенное условие, мы открываем модальное диалоговое окно, используя модальное расширитель диалогов, но мы отключили это поведение, и проблема все еще возникает). Не использовать IFrame также не является выполнимым решением. Я проверил настройки безопасности в IE, и все они настроены так, чтобы разрешить отображение IFrames.

В этом и заключается проблема - на некоторых компьютерах с тестером страница отображается в формате pdf. На других мы просто получаем пустую страницу.

Только что видел машину, которая не отображалась, начала отображаться при обновлении до IE7. К сожалению, это не решение, поскольку мы должны поддерживать что-либо вплоть до IE5.5: (

Буду очень признателен за любые идеи, которые есть у кого-либо.

Я также должен упомянуть, что на этих машинах не возникает проблем при переходе на страницу, аналогичную DocContent напрямую (вместо размещения в IFrame).

О, и спасибо заранее за вашу помощь.

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Возможно, у клиентов, которые плохо себя ведут, возникают проблемы с установкой Adobe Acrobat Reader. Он имеет настройки для того, должен ли он отображаться внутри окна браузера или снаружи.

Решение может быть таким простым, как удаление Acrobat Reader, перезагрузка, переустановка Acrobat Reader с настройками по умолчанию.

0 голосов
/ 25 сентября 2010

У нас была похожая проблема на работе, когда некоторые пользователи оказывались на пустом экране. Исправление мы сделали, чтобы сохранить файл на диск, а затем перенаправить браузер на этот файл. Мы также поместили некоторый код на место, чтобы, когда пользователь запрашивает файл, он выполнял очистку папки (удаляя все, скажем, через час).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...