图片上传和展示小例子

首先在服务器创建文件夹,然后传到sap的服务器上,AL11找到已创建的文件夹,然后上传文件到该路径
DATA: BEGIN OF itab OCCURS 0,
      field(256),
      END   OF itab.

DATA:
      dsn(100) VALUE '/usr/sap/DEV/PIC/***********',"服务器路径
      length  LIKE sy-tabix.
DATA lv_content TYPE xstring.

CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    filename   = 'F:\DESKTOP\*******' "本地路径
    filetype   = 'BIN'
  IMPORTING
    filelength = length
  TABLES
    data_tab   = itab.
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
  EXPORTING
    input_length = length
  IMPORTING
    buffer       = lv_content
  TABLES
    binary_tab   = itab[]
  EXCEPTIONS
    failed       = 1
    OTHERS       = 2.
OPEN DATASET dsn FOR OUTPUT IN BINARY MODE.

TRANSFER lv_content TO dsn.

CLOSE DATASET dsn.

WRITE:lv_content.
DATA: lv_url TYPE char255.
DATA: lv_content  TYPE xstring.
DATA: lv_repid TYPE sy-repid.

DATA: lt_data TYPE STANDARD TABLE OF x255.

DATA: lo_docking TYPE REF TO cl_gui_docking_container.
DATA: lo_picture TYPE REF TO cl_gui_picture.

DATA: p_path TYPE string VALUE '/usr/sap/DEV/PIC/*******'.

PARAMETERS: p_check.

AT SELECTION-SCREEN OUTPUT.

* Create controls
  CREATE OBJECT lo_docking
    EXPORTING
      repid     = lv_repid
      dynnr     = sy-dynnr
      side      = lo_docking->dock_at_left
      extension = 200.

  CREATE OBJECT lo_picture
    EXPORTING
      parent = lo_docking.

* Read it from application server
OPEN DATASET p_path FOR INPUT IN BINARY MODE.
READ DATASET p_path INTO lv_content .
CLOSE DATASET p_path.

* Convert
  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer     = lv_content
    TABLES
      binary_tab = lt_data.

* CReate URL
  CALL FUNCTION 'DP_CREATE_URL'
    EXPORTING
      type    = 'IMAGE'
      subtype = 'JPG'
    TABLES
      data    = lt_data
    CHANGING
      url     = lv_url.

* Load picture from URL
  lo_picture->load_picture_from_url_async( lv_url ).


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值