ABAP下载服务器文件到本机
转自http://blog.sina.com.cn/s/blog_701594f40100l8ml.html
ABAP:下载服务器文件到本机
对服务器的文件进行读写操作,SAP提供了OPEN DATASET语句。而下载文件到本地,则可以调用GUI_DOWNLOAD函数。
由于我们只需要将文件原原本本地进行复制,所以采用BINARY MODE才是比较好的办法,可以支持TXT、PDF、WORD以及任意形式的文件下载。
DATA: dset TYPE string,
subrc LIKE
sy-subrc,
leng TYPE
i,
fsize TYPE i VALUE
0,
buf TYPE c LENGTH
1000,
tblob LIKE TABLE OF buf.
dset = '/home/comp/data/test.pdf'.
OPEN DATASET dset FOR INPUT IN BINARY
MODE.
IF sy-subrc <> 0.
MESSAGE 'Error: open dataset.' TYPE
'E'.
ENDIF.
WHILE subrc = 0.
leng = 0.
READ DATASET dset INTO buf
ACTUAL LENGTH leng.
subrc = sy-subrc.
CHECK leng >
0.
fsize = fsize + leng.
APPEND buf TO
tblob.
ENDWHILE.
CLOSE DATASET dset.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = fsize
filename =
'c:\test.pdf'
filetype =
'BIN'
TABLES
data_tab =
tblob
EXCEPTIONS
OTHERS = 9.
说明:
(1)OPEN DATASET时设置IN BINARY MODE,GUI_DOWNLOAD时也是以'BIN'模式,从而实现二进制的直接传送。
(2)buf的大小决定了每次读取服务器文件中多大量的数据,如果是NON-UNICODE系统,则我们每次读取1000
BYTE(leng=1000);
如果是UNICODE系统则每次读取2000 BYTE (leng = 2000)。
(3)要注意READ
DATASET语句的返回值sy-subrc,它代表的并非本次读取到了数据与否,而是代表本次读取是否已到达文件结束符。换言之,它代表的是下次是否需要继续读取该文件。
ABAP下载服务器文件到本机的更多相关文章
- paramiko模块的安装和使用(含上传本地文件或文件夹到服务器,以及下载服务器文件到本地)
安装和使用分两步介绍: 介绍一下,本文的运行环境是win7 64位 和python 2.7 . 安装: WIN7_64位 安装python-ssh访问模块(paramiko)的安装教程,本人亲测下面 ...
- Linux命令行上传本地文件到服务器 、 下载服务器文件到本地
sh使用命令: scp 将本地文件上传至服务器 第一个是本地文件的路径/文件名, 例如 ./index.tar.gz . index.html . bg.png 等 第二个是要上传到的服务器的位置 ...
- Xshell如何上传下载服务器文件
Xshell远程连接服务器后,可以通过sz,rz下载上传文件到服务器. 安装命令: yum install lrzsz 从服务端发送文件到客户端: sz filename 选择下载文件要保存的目录 从 ...
- JAVA 批量下载服务器文件到本地指定文件夹并重命名
/** * @功能 下载文件到指定文件夹并重命名 * @param url 请求的路径 * @param filePath 文件将要保存的目录 * @param filename 保存到本地的文件名 ...
- ABAP下载txt文件
IF NOT DOWN_F[] IS INITIAL. CASE DOWN_MODE . "下载模式是放在所选路径下的.TXT文档中 WHEN 'X' . CA ...
- ubuntu 通过ssh上传/下载服务器文件
1.用ssh登录远程ubuntu主机 (主机ip为:1.2.3.4;用户名:username) ssh username@1.2.3.4 2.从远程ubuntu主机copy文件/文件夹到本地(scp) ...
- ABAP下载xml文件
[转http://www.cnblogs.com/byfhd/archive/2007/08/17/859829.html] ************************************* ...
- 使用scp命令下载服务器文件
scp -P 7022 admin@ip:/newnow/mysql/backup.sql 7birds.sql -P 指定端口号,默认为22
- 一、手把手教你docker搭建fastDFS文件上传下载服务器
在搭建fastDFS文件上传下载服务器之前,你需要准备的有一个可连接的linux服务器,并且该linux服务器上已经安装了docker,若还有没安装docker的,先百度自行安装docker. 1.执 ...
随机推荐
- 使用thrift实现了Javaserver和nodejsclient之间的跨平台通信
1. 简介 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎.以构建在 C++, Java, Python, PHP, Ruby, Erlang ...
- 【Spring】使用Filter过滤请求
原文:http://liujiajia.me/#/blog/details/spring-filter-request-with-filter public class CustomizedFilte ...
- PHP计算字符串长度函数
//计算字符串长度 function strlen_utf8($str) { $i = 0; $count = 0; $len = strlen ($str); while ($i < $len ...
- javascript判断是否为数组 面试题
1.方法 instanceof:多框架下有问题(看示例代码). Object.prototype.toString.call():兼容性很好 Array.isArray: IE9+以上 constru ...
- 【Django】其他项目导入到Pycharm无法使用,报错:Error: Django is not importable in this environment
导入项目后如下:项目名称那出现一个小叉 点击启动后提示错误: 那是由于运行环境的路径没有指向python的安装路径,如下图即可解决问题
- 使用浏览器地址栏调用CXF Webservice的写法
/* * 通过url调用 * http://localhost:8080/EFP/webService/TestWebservice/testOut/arg0/liuyx */ http://loca ...
- 简单的 nginx 多站点配置
测试环境:基于CentOS6.8 编译安装LNMP(http://www.cnblogs.com/afee666/p/6836161.html) 一 需求 在一个 VPS 主机上配置 web 服务器, ...
- ASP.NET CORE RAZOR :初始化数据库
官方说法是:设定数据库种子https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/sql 应用背景:初次部署系统时,设定一 ...
- android dp 和 px 的相互转换
在开发中,可能须要动态设置控件的大小 比如为一个gridview设置宽度: LinearLayout.LayoutParams linearParams2 = (LinearLayout.Layout ...
- SQL之经典语句
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...