PDFViewer не показывает содержимое, хотя загрузка возможна


person MJBZA    schedule 08.09.2020    source источник
comment
Я использую Chrome v85.0.4183, и образец работает нормально. Вы проверили на вкладке сети, что ни одно расширение или прокси-сервер не блокирует PDF?   -  person Lumpenstein    schedule 08.09.2020
comment
Хорошая точка зрения! Я открыл ссылку в новом экземпляре Chrome, и она смогла загрузиться! Однако я деактивировал все расширения, и они все равно не загружаются в моем основном экземпляре!   -  person MJBZA    schedule 08.09.2020
comment
Успешно ли разрешается HTTP-запрос для получения содержимого PDF? Не могли бы вы предоставить воспроизводимый пример на Plunkr/JSBin или где-то еще?   -  person Lumpenstein    schedule 08.09.2020
comment
Я использую именно образец SAP. Кажется, это не удалось, потому что какие-то настройки в моем google chrome.   -  person MJBZA    schedule 08.09.2020


Ответы (1)


Я обсуждал проблему здесь с командой SAP OpenUI5. Наконец мы поняли, что проблема не в библиотеке UI5, а в нашей реализации ABAP, которая предоставляет ссылку для загрузки файла PDF из системы управления документами SAP (SAP DMS).

Наконец-то мы нашли решение и выяснили, почему PDF-файл, который мы пытаемся показать из нашей SAP DMS, можно загрузить, хотя он не отображается в средстве просмотра PDF-файлов в современных браузерах, таких как Chrome или Firefox.

Источник решения можно найти здесь.

Следующие два изменения отличаются от обычной реализации, которую можно найти в большинстве руководств в Интернете:

  1. Значение заголовка должно быть изменено на Inline;filename= вместо outline;filename.
  2. Вызовите метод /IWBEP/IF_MGW_CONV_SRV_RUNTIME=>Set_header, чтобы установить заголовок.

Наконец, у нас есть следующий код ABAP в системах SAP для загрузки файлов из системы управления документами (SAP DMS).

"Logic for Download the files from Document Managmenet System
    DATA: ls_lheader TYPE ihttpnvp,
          ls_stream  TYPE ty_s_media_resource,
          ls_entity  TYPE zgw_odata_document_file.

    CONSTANTS: lc_headername  TYPE string VALUE 'Content-Disposition',
               lc_headervalue1 TYPE string VALUE 'inline; filename="',
               lc_headervalue2 TYPE string VALUE '";'.

*    "Get the name of the Entity
    DATA(lv_entity_name) = io_tech_request_context->get_entity_type_name( ).

    CASE lv_entity_name.

      WHEN 'DocumentFile'.
        DATA(lo_document_file) = NEW zcl_gw_odata_document_file( ).
        lo_document_file->read_stream(
          EXPORTING
            it_key_tab = it_key_tab
          IMPORTING
            es_stream  = ls_entity ).

        ls_lheader-name = lc_headername.
        ls_entity-file_name = escape( val = ls_entity-file_name format = cl_abap_format=>e_url ).
        ls_lheader-value = lc_headervalue1 && ls_entity-file_name && lc_headervalue2 .
        set_header( is_header = ls_lheader ).

        ls_stream-mime_type = ls_entity-mimetype.
        ls_stream-value = ls_entity-binfile.
        copy_data_to_ref( EXPORTING is_data = ls_stream
                          CHANGING  cr_data = er_stream ).
      WHEN OTHERS.
    ENDCASE.

person MJBZA    schedule 01.10.2020