You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断存储为XSTRING变量的二进制文件的MIME类型?已尝试指定方法无效

判断XSTRING二进制文件的MIME类型的可行方案
  • 使用CL_HTTP_UTILITY类的检测方法
    这个类的静态方法DETECT_MIME_TYPE_FROM_BINARY能直接基于XSTRING里的二进制内容识别MIME类型,覆盖多数常见文件格式。示例代码:

    DATA(lv_xstring) = "你的XSTRING变量".
    DATA(lv_mime_type) = CL_HTTP_UTILITY=>DETECT_MIME_TYPE_FROM_BINARY( lv_xstring ).
    WRITE lv_mime_type.
    
  • 使用函数模块SCMS_MIME_TYPE_DETECT
    专门用于MIME类型检测的函数模块,支持通过二进制数据直接判断,还能返回对应的文件扩展名。示例代码:

    DATA: lv_xstring TYPE xstring,
          lv_mime_type TYPE string,
          lv_extension TYPE string.
    
    lv_xstring = "你的XSTRING变量".
    
    CALL FUNCTION 'SCMS_MIME_TYPE_DETECT'
      EXPORTING
        binary_content = lv_xstring
      IMPORTING
        mime_type      = lv_mime_type
        extension      = lv_extension.
    
    WRITE: / 'MIME类型:', lv_mime_type, / '扩展名:', lv_extension.
    

    如果知道文件的扩展名,还可以传入extension参数辅助检测,结果会更准确。

  • 自定义文件头匹配逻辑
    要是遇到上述工具识别不了的小众格式,直接解析XSTRING的前几个字节(文件头特征)就行,不同格式的文件头是固定的。比如JPG头是FFD8FF、PNG是89504E47、PDF是25504446。示例代码:

    DATA(lv_xstring) = "你的XSTRING变量".
    DATA(lv_header) TYPE xstring.
    DATA(lv_mime_type) TYPE string.
    
    "提取前4个字节作为文件头
    lv_header = lv_xstring(4).
    
    CASE lv_header.
      WHEN '89504E47'. lv_mime_type = 'image/png'.
      WHEN 'FFD8FF' && '*'. lv_mime_type = 'image/jpeg'.
      WHEN '25504446'. lv_mime_type = 'application/pdf'.
      "可以继续添加更多格式的匹配规则
      WHEN OTHERS. lv_mime_type = 'application/octet-stream'.
    ENDCASE.
    
    WRITE lv_mime_type.
    

内容的提问来源于stack exchange,提问作者Cutter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 21:42:16