ABAP上传文件到服务器

ABAP如何实现上传本地文件到FTP服务器

想通过ABAP程序上传本地文件到FTP服务器?原以为通过FTP_CONNECT,FTP_COMMAND等FM可以实
现,试了好像不行,只能实现将文件从应用服务器传输到FTP服务器上,有哪位高手知道方法?

用FTP_CONNECT,FTP_COMMAND就可以实现了

 
SAP 本地文件上传 服务器文件下载 [转载之沧海拾贝]
2008-09-24 10:14

*本例用来服务器和本地的文件的上传和下载(非常简单的入门实例,没有考虑编码等问题)。
REPORT Z_ERIC_061 .

*用于读取文件数据的
TYPES: BEGIN OF T_INPUT,
CONTENT(8000) TYPE C,
END OF T_INPUT.

DATA: IT_INPUT TYPE STANDARD TABLE OF T_INPUT.
DATA: WA_INPUT TYPE T_INPUT.

SELECTION-SCREEN BEGIN OF BLOCK B1
                 WITH FRAME TITLE TEXT-001.
PARAMETERS: RB_PC_SV RADIOBUTTON GROUP G1 DEFAULT 'X' MODIF ID M1.
PARAMETERS: RB_SV_PC RADIOBUTTON GROUP G1 MODIF ID M1.
SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2
                 WITH FRAME TITLE TEXT-002.
PARAMETERS: P_PC TYPE RLGRAP-FILENAME.
PARAMETERS: P_SV TYPE RLGRAP-FILENAME MODIF ID M1.
SELECTION-SCREEN END OF BLOCK B2.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PC.
*打开本地文件的对话框的函数
CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      DEF_FILENAME           = '*.*'
      MASK                   = ',*.*,*.*. '
      TITLE                  = 'SELECT YOUR LOCAL FILE:'
    IMPORTING
      FILENAME               = P_PC
    EXCEPTIONS
      INV_WINSYS             = 1
      NO_BATCH               = 2
      SELECTION_CANCEL       = 3
      SELECTION_ERROR        = 4
      OTHERS                 = 5.

IF SY-SUBRC <> 0.
    WRITE: / 'SY-SUBRC:', SY-SUBRC.
ENDIF.

START-OF-SELECTION.
IF RB_PC_SV = 'X'.
    PERFORM PC_SERVER.
ELSE.
    PERFORM SERVER_PC.
ENDIF.
*&---------------------------------------------------------------------*
*&      Form PC_SERVER
*&---------------------------------------------------------------------*
FORM PC_SERVER.
*用于上传文件到内表的函数
CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      FILENAME                      = P_PC
    TABLES
      DATA_TAB                      = IT_INPUT
    EXCEPTIONS
      CONVERSION_ERROR              = 1
      FILE_OPEN_ERROR               = 2
      FILE_READ_ERROR               = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      OTHERS                        = 10.

IF SY-SUBRC <> 0.
    WRITE: / 'SY-SUBRC:', SY-SUBRC.
ENDIF.

*将内表的数据写入到服务器上面的文件
OPEN DATASET P_SV FOR OUTPUT IN TEXT MODE.
LOOP AT IT_INPUT INTO WA_INPUT.
    TRANSFER WA_INPUT TO P_SV.
ENDLOOP.
CLOSE DATASET P_SV.

ENDFORM.                    " PC_SERVER
*&---------------------------------------------------------------------*
*&      Form SERVER_PC
*&---------------------------------------------------------------------*
FORM SERVER_PC.

*将服务器上面的文件读入到内表中
OPEN DATASET P_SV FOR INPUT IN TEXT MODE.
    DO.
      READ DATASET P_SV INTO WA_INPUT.
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
      APPEND WA_INPUT TO IT_INPUT.
    ENDDO.
CLOSE DATASET P_SV.

*将内表中的数据下载到本地
CALL FUNCTION 'WS_DOWNLOAD'
   EXPORTING
      FILENAME                      = P_PC
    TABLES
      DATA_TAB                      = IT_INPUT
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_WRITE_ERROR              = 2
      INVALID_FILESIZE              = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      OTHERS                        = 10.

IF SY-SUBRC <> 0.
    WRITE: / 'SY-SUBRC:', SY-SUBRC.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值