本地文件/服务器文件 互传
2017-03-15 10:24
429 查看
REPORT z_barry_up_server.
TABLES: sscrfields.
DATA: serverfile(100) ,
file(80).
DATA dyfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
PARAMETERS: p_file LIKE rcgfiletr-ftfront OBLIGATORY LOWER CASE ,
p_serv LIKE rcgfiletr-ftappl OBLIGATORY.
PARAMETERS p_over LIKE bapistdtyp-boolean.
INITIALIZATION.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_HOME'
ID 'VALUE' FIELD serverfile.
CONCATENATE serverfile '/' INTO serverfile.
p_serv = serverfile.
sscrfields-functxt_01 = '上载到服务器'.
sscrfields-functxt_02 = '从服务器下载'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = p_file.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = p_file
IMPORTING
stripped_name = file
EXCEPTIONS
x_error = 1
OTHERS = 2.
CLEAR:dyfields, dyfields[].
dyfields-fieldname = 'P_SERV'.
CONCATENATE serverfile file INTO dyfields-fieldvalue.
APPEND dyfields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = dyfields.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_serv.
CLEAR: dyfields[], dyfields.
dyfields-fieldname = 'P_SERV'.
APPEND dyfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = dyfields.
READ TABLE dyfields INDEX 1.
CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
EXPORTING
directory = dyfields-fieldvalue
filemask = ' '
IMPORTING
serverfile = serverfile
EXCEPTIONS
canceled_by_user = 1
OTHERS = 2.
CONCATENATE serverfile '/' INTO serverfile .
p_serv = serverfile.
AT SELECTION-SCREEN.
CASE sy-ucomm . " SY-DYNNR SSCRFIELDS-UCOMM
WHEN 'FC01'.
CALL FUNCTION 'C13Z_FILE_UPLOAD_BINARY'
EXPORTING
i_file_front_end = p_file
i_file_appl = p_serv
i_file_overwrite = p_over
EXCEPTIONS
fe_file_not_exists = 1
fe_file_read_error = 2
ap_no_authority = 3
ap_file_open_error = 4
ap_file_exists = 5
OTHERS = 6.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE e000(oo) WITH '本地文件不存在'.
WHEN 2.
MESSAGE e000(oo) WITH '读取本地文件错误'.
WHEN 3.
MESSAGE e000(oo) WITH '没有服务器上载权限'.
WHEN 4.
MESSAGE e000(oo) WITH '服务器文件打开错误'.
WHEN 5.
MESSAGE e000(oo) WITH '服务器上此文件已存在'.
WHEN OTHERS.
MESSAGE e000(oo) WITH '不知道什么错误,反正是出错了'.
ENDCASE.
ELSE.
MESSAGE s000(oo) WITH '上船完毕!'.
ENDIF.
WHEN 'FC02'.
CALL FUNCTION 'C13Z_FILE_DOWNLOAD_BINARY'
EXPORTING
i_file_front_end = p_file
i_file_appl = p_serv
i_file_overwrite = p_over
EXCEPTIONS
fe_file_open_error = 1
fe_file_exists = 2
fe_file_write_error = 3
ap_no_authority = 4
ap_file_open_error = 5
ap_file_empty = 6
OTHERS = 7.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE e000(oo) WITH '本地文件打开错误'.
WHEN 2.
MESSAGE e000(oo) WITH '本地文件已存在'.
WHEN 3.
MESSAGE e000(oo) WITH '写本地文件出错,可能是这个路径不让写'.
WHEN 4.
MESSAGE e000(oo) WITH '没有服务器下载权限'.
WHEN 5.
MESSAGE e000(oo) WITH '服务器文件打开错误'.
WHEN 6.
MESSAGE e000(oo) WITH '服务器上文件为空'.
WHEN OTHERS.
MESSAGE e000(oo) WITH '不知道什么错误,反正是出错了'.
ENDCASE.
ELSE.
MESSAGE s000(oo) WITH '下载完毕!'.
ENDIF.
ENDCASE.
START-OF-SELECTION.
MESSAGE s000(oo) WITH '点旁边那两个按钮,别点我!'.
二次转载,原著地址不得知。
TABLES: sscrfields.
DATA: serverfile(100) ,
file(80).
DATA dyfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN FUNCTION KEY 1.
SELECTION-SCREEN FUNCTION KEY 2.
PARAMETERS: p_file LIKE rcgfiletr-ftfront OBLIGATORY LOWER CASE ,
p_serv LIKE rcgfiletr-ftappl OBLIGATORY.
PARAMETERS p_over LIKE bapistdtyp-boolean.
INITIALIZATION.
CALL 'C_SAPGPARAM' ID 'NAME' FIELD 'DIR_HOME'
ID 'VALUE' FIELD serverfile.
CONCATENATE serverfile '/' INTO serverfile.
p_serv = serverfile.
sscrfields-functxt_01 = '上载到服务器'.
sscrfields-functxt_02 = '从服务器下载'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = p_file.
CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'
EXPORTING
full_name = p_file
IMPORTING
stripped_name = file
EXCEPTIONS
x_error = 1
OTHERS = 2.
CLEAR:dyfields, dyfields[].
dyfields-fieldname = 'P_SERV'.
CONCATENATE serverfile file INTO dyfields-fieldvalue.
APPEND dyfields.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = dyfields.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_serv.
CLEAR: dyfields[], dyfields.
dyfields-fieldname = 'P_SERV'.
APPEND dyfields.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
TABLES
dynpfields = dyfields.
READ TABLE dyfields INDEX 1.
CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
EXPORTING
directory = dyfields-fieldvalue
filemask = ' '
IMPORTING
serverfile = serverfile
EXCEPTIONS
canceled_by_user = 1
OTHERS = 2.
CONCATENATE serverfile '/' INTO serverfile .
p_serv = serverfile.
AT SELECTION-SCREEN.
CASE sy-ucomm . " SY-DYNNR SSCRFIELDS-UCOMM
WHEN 'FC01'.
CALL FUNCTION 'C13Z_FILE_UPLOAD_BINARY'
EXPORTING
i_file_front_end = p_file
i_file_appl = p_serv
i_file_overwrite = p_over
EXCEPTIONS
fe_file_not_exists = 1
fe_file_read_error = 2
ap_no_authority = 3
ap_file_open_error = 4
ap_file_exists = 5
OTHERS = 6.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE e000(oo) WITH '本地文件不存在'.
WHEN 2.
MESSAGE e000(oo) WITH '读取本地文件错误'.
WHEN 3.
MESSAGE e000(oo) WITH '没有服务器上载权限'.
WHEN 4.
MESSAGE e000(oo) WITH '服务器文件打开错误'.
WHEN 5.
MESSAGE e000(oo) WITH '服务器上此文件已存在'.
WHEN OTHERS.
MESSAGE e000(oo) WITH '不知道什么错误,反正是出错了'.
ENDCASE.
ELSE.
MESSAGE s000(oo) WITH '上船完毕!'.
ENDIF.
WHEN 'FC02'.
CALL FUNCTION 'C13Z_FILE_DOWNLOAD_BINARY'
EXPORTING
i_file_front_end = p_file
i_file_appl = p_serv
i_file_overwrite = p_over
EXCEPTIONS
fe_file_open_error = 1
fe_file_exists = 2
fe_file_write_error = 3
ap_no_authority = 4
ap_file_open_error = 5
ap_file_empty = 6
OTHERS = 7.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE e000(oo) WITH '本地文件打开错误'.
WHEN 2.
MESSAGE e000(oo) WITH '本地文件已存在'.
WHEN 3.
MESSAGE e000(oo) WITH '写本地文件出错,可能是这个路径不让写'.
WHEN 4.
MESSAGE e000(oo) WITH '没有服务器下载权限'.
WHEN 5.
MESSAGE e000(oo) WITH '服务器文件打开错误'.
WHEN 6.
MESSAGE e000(oo) WITH '服务器上文件为空'.
WHEN OTHERS.
MESSAGE e000(oo) WITH '不知道什么错误,反正是出错了'.
ENDCASE.
ELSE.
MESSAGE s000(oo) WITH '下载完毕!'.
ENDIF.
ENDCASE.
START-OF-SELECTION.
MESSAGE s000(oo) WITH '点旁边那两个按钮,别点我!'.
二次转载,原著地址不得知。
相关文章推荐
- VWD内建Web服务器无法解析本地Flash文件[Bug]
- 使用3389在本地和服务器间传送文件
- (问?)远程桌面连接怎么把本地文件复制到服务器上!?[]
- C# Winform 上传本地文件到服务器路径
- 如何控制上传附件的大小?在没有上传到服务器上就能判断出来 - 用Applet(签名) + JavaScript在提交前先判断本地文件的大小。
- 将本地CSV格式文件内容上传到服务器的一个简单例子
- 在服务器端生成Excel文件然后从服务器下载的本地的代码
- aspx文件在服务器上打开时没有乱码,但另存为html后保存到本地出现乱码
- asp.net 弹出下载对话框 将文件从服务器下载到本地
- python urllib从远程服务器下载文件到本地
- 用java将服务器上的音乐文件保存到本地
- 将本地文件上传到服务器上
- webdrive可以把FTP服务器的文件目录映射到本地磁盘
- J2ME文件系统运用(五) 从本地上传文件至服务器(支持同时上传多个文件)
- C# WinForm 通过URL取得服务器上的某图片文件到本地
- C#下载远程服务器文件到本地服务器
- 在本地我们调试运行AJAX.NET程序完全没有问题,但是一旦上传到服务器就会出现很多Web.config文件异常
- 自动将远程页面的文件中的图片下载到本地服务器
- 本地文件上载到SAP 服务器
- 从服务器上导出excel文件到本地