




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FTP操作技术作者:许明杰日期:2015-02-10版本:1.0 1、创建TCP/IP连接:使用程序RSFTP005创建SM59的FTP连接二、注册需要连接的IP:表SAPFTP_SERVERS存储可用于连接的IP三、程序RSFTP002是FTP的命令测试程序,可参考之四、实例:封装函数实现将FTP文件下载到本地,解压缩,并打开文件代码如下FUNCTION ZOA_SD_FTP_OPEN.*"-*"*"本地接口:*" IMPORTING*" REFEREN
2、CE(FILENAME) TYPE STRING*" REFERENCE(FILETYPE) TYPE STRING*" REFERENCE(OUTFNAME) TYPE STRING*" EXCEPTIONS*" NO_SUCH_FILE*"-
3、*-从FTP下载附件-* DATA: WA_OA_FTP LIKE ZFTP_OA. DATA: G_CMD_FTP_OPEN_PATH(100) TYPE C, G_CMD_FTP_OPEN_LOACL_PATH(100) TYPE C, G_CMD_FTP_DOWN_FILE(100
4、) TYPE C. DATA: G_LINK_HANDLE TYPE I, G_KEY TYPE I VALUE 26101957, G_SLEN TYPE I, G_COMPRESS&
5、#160;TYPE C VALUE 'N'. DATA: BEGIN OF RESULT OCCURS 0, LINE(100) TYPE C, END OF RESULT. DATA: IT_FILETAB T
6、YPE FILETABLE, WA_FILETAB LIKE LINE OF IT_FILETAB, L_RC TYPE I. DATA: G_LOCAL_PATH TYPE STRING, G_
7、LOCAL_FILENAME TYPE STRING, G_LOCAL_FULL_PATH TYPE STRING, G_LOCAL_FULL_PATH_ZIP TYPE STRING. DATA: G_FTP_PATH TYPE STRING,
8、60; G_FTP_FILENAME TYPE STRING, G_FTP_FILETYPE TYPE STRING. DATA: L_TCHAR1 TYPE STRING, L_TCHAR2 TYPE STRING,
9、 L_INDEX TYPE I. "获取FTP相关参数 SELECT SINGLE * INTO WA_OA_FTP FROM ZFTP_OA WHERE ZJHBZ = 'X'. L_INDEX = STRLEN(
10、;WA_OA_FTP-ZDIRT ). IF STRLEN( WA_OA_FTP-ZDIRT ) >= STRLEN( FILENAME ). RAISE NO_SUCH_FILE. ENDIF. "拆分FTP的文件路径与文件名 L_TCHAR2 = FILENAME+L_INDEX. DO 20
11、;TIMES. SPLIT L_TCHAR2 AT '/' INTO L_TCHAR1 L_TCHAR2. IF L_TCHAR2 IS NOT INITIAL. CONCATENATE G_FTP_PATH '/' L_TCHAR1 INTO G_FTP
12、_PATH. ELSE. G_FTP_FILENAME = L_TCHAR1. EXIT. ENDIF. ENDDO. "获取FTP文件类型 CLEAR L_INDEX. L_TCHAR2 = G_FTP_FILENAM
13、E. DO 10 TIMES. L_INDEX = L_INDEX + 1. SPLIT L_TCHAR2 AT '.' INTO L_TCHAR1 L_TCHAR2. IF L_TCHAR2 IS INITIAL
14、 OR L_TCHAR2 = WA_OA_FTP-ZDLHZ+1. IF L_INDEX <> 1. CONCATENATE '.' L_TCHAR1 INTO G_FTP_FILETYPE. ENDIF.
15、; EXIT. ENDIF. ENDDO. "无后缀名,赋值FILETYPE IF G_FTP_FILETYPE IS INITIAL. G_FTP_FILETYPE = FILETYPE. ENDIF. TRANSLATE G_FTP_FILETYPE TO
16、UPPER CASE. "前台选择保存的本地路径和文件 CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG EXPORTING WINDOW_TITLE = '保存文件目录'
17、60;INITIAL_DIRECTORY = 'D:/' DEFAULT_FILE_NAME = OUTFNAME CHANGING FILENAME = G_LOCAL_FILENAME
18、60; PATH = G_LOCAL_PATH FULLPATH = G_LOCAL_FULL_PATH. IF G_LOCAL_PATH IS INI
19、TIAL. EXIT. ENDIF. "本地文件全称 CONCATENATE G_LOCAL_FILENAME G_FTP_FILETYPE INTO G_LOCAL_FILENAME. CONCATENATE G_LOCAL_FULL_PATH G_FTP_FILETYPE INTO G_LOCAL_FULL_PATH. G_LOCAL_FULL_P
20、ATH_ZIP = G_LOCAL_FULL_PATH. SET EXTENDED CHECK OFF. G_SLEN = STRLEN( WA_OA_FTP-ZUPWD ). "处理密码 CALL FUNCTION 'HTTP_SCRAMBLE' EXPORTING &
21、#160;SOURCE = WA_OA_FTP-ZUPWD SOURCELEN = G_SLEN KEY = G_KEY IMPORTING
22、; DESTINATION = WA_OA_FTP-ZUPWD. "连接FTP CALL FUNCTION 'FTP_CONNECT' EXPORTING USER = WA_OA_FTP
23、-UNAME PASSWORD = WA_OA_FTP-ZUPWD HOST = WA_OA_FTP-ZHOST RFC_DESTIN
24、ATION = WA_OA_FTP-RFCDEST IMPORTING HANDLE = G_LINK_HANDLE. "打开FTP目录 CONCATENATE 'cd' G_FTP_PATH INTO G_CMD_FTP_O
25、PEN_PATH SEPARATED BY SPACE. IF G_CMD_FTP_OPEN_PATH IS NOT INITIAL. CALL FUNCTION 'FTP_COMMAND' EXPORTING HANDLE &
26、#160; = G_LINK_HANDLE COMMAND = G_CMD_FTP_OPEN_PATH COMPRESS = G_COMPRESS &
27、#160; TABLES DATA = RESULT EXCEPTIONS COMMAND_ERROR = 1 &
28、#160; TCPIP_ERROR = 2. ENDIF. "打开本地目录 CONCATENATE 'lcd' G_LOCAL_PATH INTO G_CMD_FTP_OPEN_LOACL_PATH SEPARATED BY SPACE. IF G_CMD_FTP_OPEN_LOACL_PATH IS NOT
29、;INITIAL. CALL FUNCTION 'FTP_COMMAND' EXPORTING HANDLE = G_LINK_HANDLE COMMAND
30、 = G_CMD_FTP_OPEN_LOACL_PATH COMPRESS = G_COMPRESS TABLES DATA
31、; = RESULT EXCEPTIONS COMMAND_ERROR = 1 TCPIP_ERROR = 2. ENDIF. "保存FTP文件
32、到本地 CONCATENATE 'get' G_FTP_FILENAME G_LOCAL_FILENAME INTO G_CMD_FTP_DOWN_FILE SEPARATED BY SPACE. IF G_CMD_FTP_DOWN_FILE IS NOT INITIAL. CALL FUNCTION 'FTP_COMMAND'
33、0; EXPORTING HANDLE = G_LINK_HANDLE COMMAND = G_CMD_FTP_DOWN_FILE
34、160; COMPRESS = G_COMPRESS TABLES DATA = RESULT EX
35、CEPTIONS COMMAND_ERROR = 1 TCPIP_ERROR = 2. ENDIF. "关闭FTP连接 CALL FUNCTION 'FTP_DISCONNECT' EXPO
36、RTING HANDLE = G_LINK_HANDLE. "关闭连接方式 CALL FUNCTION 'RFC_CONNECTION_CLOSE' EXPORTING DESTINATION = WA_OA_FTP-RFCDEST EX
37、CEPTIONS OTHERS = 1.*-解压附件-* TYPES: BEGIN OF T_FILE, NAME TYPE STRING,
38、 DATE TYPE D, TIME TYPE T, SIZE TYPE I, END OF T_FILE .
39、 TYPES: T_FILES TYPE TABLE OF T_FILE . DATA: CL_ZIP TYPE REF TO CL_ABAP_ZIP, XSTR TYPE XSTRING, BINARY_TAB T
40、YPE STANDARD TABLE OF X255 , BIN_LEN TYPE I , LS_FILE TYPE T_FILE , IT_FILES TYPE T_FILES
41、;. DATA: ITAB TYPE STANDARD TABLE OF SDOKCNTASC. IF WA_OA_FTP-ZJYBZ IS NOT INITIAL AND ( G_FTP_FILETYPE = '.ZIP' OR G_FTP_FIL
42、ETYPE = '.RAR' ). "加载压缩包 CALL FUNCTION 'GUI_UPLOAD' EXPORTING FILENAME = G_LOCAL_FULL_PATH
43、160; FILETYPE = 'BIN' IMPORTING FILELENGTH = BIN_LEN TABLES DATA_TA
44、B = BINARY_TAB. "转换为字符流 CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' EXPORTING INPUT_LENGTH = BIN_LEN
45、0; IMPORTING BUFFER = XSTR TABLES BINARY_TAB = BINARY_TAB
46、;EXCEPTIONS FAILED = 1 OTHERS = 2. "创建ZIP对象 CREATE OBJECT&
47、#160;CL_ZIP. "加载到ZIP对象 CALL METHOD CL_ZIP->LOAD EXPORTING ZIP = XSTR. "遍历压缩包 LOOP AT
48、0;CL_ZIP->FILES INTO LS_FILE . "获取压缩包文件 CALL METHOD CL_ZIP->GET EXPORTING NAME
49、0; = LS_FILE-NAME IMPORTING CONTENT = XSTR. "将字符转换为二进制数据 CALL FUNCTION 'SCMS_XS
50、TRING_TO_BINARY' EXPORTING BUFFER = XSTR IMPORTING OUTPUT_LENGTH = BIN_LEN TABLES
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 促进校园国际化的社团活动计划
- 制定高科技企业安全方案计划
- 加强对特殊群体的招聘与支持计划
- 美容院面诊知识培训课件
- 贵州康腾能源集团有限公司毕节市七星关区小坝镇王家坝煤矿变更矿产资源绿色开发利用方案(三合一)评审意见
- 小学英语五年级选词填空
- 2025年河北货运从业资格证模拟考试题及答案详解
- 2025年合肥货运从业资格证考试试题和答案详解
- 鼻综合培训专业知识课件
- 【人教PEP版英语六年级上册】期末测试卷(12)及答案
- 2025年安徽合肥市轨道交通集团限公司社会招聘24人高频重点提升(共500题)附带答案详解
- 民法典合同编培训
- 医学伦理与医患沟通技巧
- 个人信息保护:维护个人隐私和数据安全
- 5.3.2 函数的极值与最大(小)值 第2课时 教学设计
- 2024-2030年中国油用牡丹行业需求状况及产销规模预测报告
- 无机化学实验(下)知到智慧树章节测试课后答案2024年秋陕西师范大学
- 高等教育自学考试自考《英语二》试题及答案指导(2025年)
- 急性心力衰竭-
- 痔疮中医治疗课件
- 2024年皖北卫生职业学院单招职业技能测试题库
评论
0/150
提交评论