Sapui5 可以下载时,PDFViewer未显示内容

Sapui5 可以下载时,PDFViewer未显示内容,sapui5,abap,dms,Sapui5,Abap,Dms,我正在尝试在SAPUI5应用程序中使用,如下所示 当我尝试在Google chrome中使用这个组件时,它不会加载数据,但是可以下载PDF本身,它显示url工作正常,文件可用 如果我在Firefox或IE中打开它,它就会工作 我与SAP OpenUI5团队讨论了这个问题。最后,我们了解到问题不在于UI5库,而在于我们的ABAP实现内部,该实现为SAP文档管理系统(SAP DMS)的PDF文件提供下载链接 我们最终找到了解决方案,并发现了为什么我们试图从SAP DMS中显示的pdf可以下载,而在

我正在尝试在SAPUI5应用程序中使用,如下所示

当我尝试在Google chrome中使用这个组件时,它不会加载数据,但是可以下载PDF本身,它显示url工作正常,文件可用

如果我在Firefox或IE中打开它,它就会工作

我与SAP OpenUI5团队讨论了这个问题。最后,我们了解到问题不在于UI5库,而在于我们的ABAP实现内部,该实现为SAP文档管理系统(SAP DMS)的PDF文件提供下载链接

我们最终找到了解决方案,并发现了为什么我们试图从SAP DMS中显示的pdf可以下载,而在Chrome或Firefox等现代浏览器中的pdf查看器中却没有显示

可以找到解决方案的来源

以下两个更改与internet上大多数教程中的正常实现不同:

  • 标题值必须更改为
    Inline;文件名=
    而不是
    大纲;文件名
  • 调用方法
    /IWBEP/IF\u MGW\u CONV\u SRV\u RUNTIME=>Set\u header
    来设置头
  • 最后,我们在SAP系统中有以下ABAP代码,用于从文档管理系统(SAP DMS)下载文件


    我使用的是Chrome v85.0.4183,样本工作正常。你有没有检查过你的网络标签,没有扩展或代理阻止了PDF?好的观点!我在一个新的Chrome实例中打开了链接,可以加载了!然而,我已经停用了所有的扩展,但它仍然不能在我的主实例中加载!获取pdf内容的http请求是否成功解析?您能在Plunkr/JSBin或其他地方提供一个可复制的示例吗?我使用的正是SAP的示例。它似乎是失败的,因为在我的谷歌浏览器的某种设置。
    "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.