FTP
作者:闫国梁
最后更新时间:2020年7月3日
概述:目前FTP只有AT方式支持,LUAT暂不支持。
AT指令说明
设置 FTP 控制端口:AT+FTPPORT
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPPORT= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPPORT? | +FTPPORT: OK | |
测试命令 | AT+FTPPORT=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 控制端口号 | 1~65535 | 缺省值为 21 |
设置 FTP 主动或被动模式:AT+FTPMODE
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPMODE= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPMODE? | +FTPMODE: OK | |
测试命令 | AT+FTPMODE=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 主动被动模式 | 0 | 主动模式 | |
1 | 被动模式 |
设置 FTP 数据传输类型:AT+FTPTYPE
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPTYPE= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPTYPE? | +FTPTYPE: OK | |
测试命令 | AT+FTPTYPE=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 数据传输类型 | "A" | FTP ASCII 字符集 | |
"I" | FTP Binary 字符集 |
设置 FTP 输入类型:AT+FTPPUTOPT
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPPUTOPT= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPPUTOPT? | +FTPPUTOPT: OK | |
测试命令 | AT+FTPPUTOPT=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 数据传输类型 | "APPE" | 添加文件 | |
"STOU" | 存储唯一的文件 | ||
"STOR" | 存储文件 |
设置 FTP 承载标识:AT+FTPCID
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPCID= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPCID? | +FTPCID: OK | |
测试命令 | AT+FTPCID=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 承载标识 | 1~3 | 同+SAPBR 中 定义。缺省值为 0。 |
设置 FTP 下载续传:AT+FTPREST
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPREST= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPREST? | +FTPREST: OK | |
测试命令 | AT+FTPREST=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
要续传的断点 |
设置 FTP 服务器地址:AT+FTPSERV
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPSERV= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPSERV? | +FTPSERV: OK | |
测试命令 | AT+FTPSERV=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 服务器地址, IP 或域名 | 32-bit 十 进 制 数 , 用 . 分 开 , 形 式 如 : xxx.xxx.xxx.xxx。 如果是 DNS,则为长度不超过 49 的 ASCII 字符串。 |
设置 FTP 用户名称:AT+FTPUN
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPUN= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPUN? | +FTPUN: OK | |
测试命令 | AT+FTPUN=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 用户名 | 为长度不超过 49 的 ASCII 字符串。 |
设置 FTP 密码:AT+FTPPW
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPPW= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPPW? | +FTPPW: OK | |
测试命令 | AT+FTPPW=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 密码 | 为长度不超过 49 的 ASCII 字符串。 |
设置 FTP 下载文件名称:AT+FTPGETNAME
设置服务器端目标文件的名称。
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPGETNAME= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPGETNAME? | +FTPGETNAME: OK | |
测试命令 | AT+FTPGETNAME=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 下载文件名称 | 为长度不超过 99 的 ASCII 字符串。 |
设置 FTP 下载文件路径:AT+FTPGETPATH
本命令是设置目标文件在服务器端的路径。
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPGETPATH= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPGETPATH? | +FTPGETPATH: OK | |
测试命令 | AT+FTPGETPATH=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 下载文件路径 | 长度不超过 255 的 ASCII 字符串。 |
设置 FTP 上传文件名称:AT+FTPPUTNAME
设置将文件上传到服务器后的保存名称。
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPPUTNAME= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPPUTNAME? | +FTPPUTNAME: OK | |
测试命令 | AT+FTPPUTNAME=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 上传文件名称 | 长度不超过 99 的 ASCII 字符串。 |
设置 FTP 上传文件路径:AT+FTPPUTPATH
设置将文件上传到服务器后的保存目录。
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPPUTPATH= | OK | 正常返回 |
ERROR | 输入格式有误 | ||
查询命令 | AT+FTPPUTPATH? | +FTPPUTPATH: OK | |
测试命令 | AT+FTPPUTPATH=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 上传文件路径 | 长度不超过 99 的 ASCII 字符串。 |
远程服务器上创建文件目录:AT+FTPMKD
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
执行命令 | AT+FTPMKD | OK +FTPMKD: 1,0 | 创建成功 |
OK +FTPMKD: 1, | 创建失败 | ||
+CME ERROR: | 如果是命令错误 | ||
测试命令 | AT+FTPMKD=? | OK | |
注意事项 | 执行命令创建的文件目录由命令AT+FTPGETPATH定义 |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
错误码 | 与 AT+FTPGET 命令的 定义相同 |
远程服务器上删除文件目录:AT+FTPRMD
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
执行命令 | AT+FTPRMD | OK +FTPRMD: 1,0 | 删除成功 |
OK +FTPRMD: 1, | 删除失败 | ||
+CME ERROR: | 如果是命令错误 | ||
测试命令 | AT+FTPRMD=? | OK | |
注意事项 | 执行命令删除的文件目录由命令AT+FTPGETPATH定义 |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
错误码 | 与 AT+FTPGET 命令的 定义相同 |
下载文件:AT+FTPGET
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPGET= [, ] | OK | 输入AT+FTPGET=1 的返回 |
+FTPGET:2, ……..数据……….. OK | 输入: AT+FTPGET=2, 的返回 | ||
URC 上报 | +FTPGET:1,1 | 输入AT+FTPGET=1后,有此上报,表示有数据了,第一个参数 1表示 为1 | |
+FTPGET:1, | 输入AT+FTPGET=1后,有此上报,表示FTP下载失败,第一个参数1表示 为1 | ||
+FTPGET:1,0 | 表示数据传输结束,第一个参数1表示 为1 | ||
测试命令 | AT+FTPGET=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
工作模式 | 1 | 打开 FTP 会话 | |
2 | 读入 FTP 下载数据 | ||
请求读入的数据长度 | 1~1460 | ||
确认读入的数据长度 | 1~1460 | 可能小于 。0 表示没有数据可以读入。 | |
错误码 | 61 | 网络错误 net error | |
62 | DNS 错误 DNS error | ||
63 | 连接错误 connect error | ||
64 | 超时 timeout | ||
65 | 服务器错误 server error | ||
66 | 操作禁止operation not allowed | ||
70 | 应答错误 reply error | ||
71 | 用户错误 user error | ||
72 | 口令错误 password error | ||
73 | 类型错误type error | ||
74 | 保持错误 rest error | ||
75 | 被动错误 passive error | ||
76 | 主动错误active error | ||
77 | 操作错误 operate error | ||
78 | 上传错误 upload error | ||
79 | 下载错误 download error | ||
80~84 | FTP SSL 连接错误 | ||
85 | 文件错误 | ||
86 | 主动退出 |
上传文件:AT+FTPPUT
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPPUT= [, ] | OK | 输入AT+FTPPUT=1的返回 |
+FTPPUT:2, …….. //input data here OK | 输入: AT+FTPPUT=2, 的返回 | ||
OK +FTPPUT: 1,0 | 输入: AT+FTPPUT=2,0 的返回 | ||
URC 上报 | +FTPPUT:1,1, | 输入AT+FTPPUT=1后,有此上报,表示可以上传数据了此时通过输入AT+FTPPUT=2, 上传数据第一个参数1表示 为1 | |
+FTPPUT:1,0 | 表示数据传输会话结束。第一个参数1表示 为1 | ||
+FTPPUT:1, | 如果 =1,而且FTP会话失败。错误码 定义请参考AT+FTPGET 错误码 定义 | ||
测试命令 | AT+FTPPUT=? | OK |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
FTP 上传工作模式 | 1 | 打开 FTP 会话 | |
2 | 写 FTP 上传数据 | ||
请求上传的数据长度 | 0- | ||
确认可以上传的数据长度 | |||
单次可以上传的最大的长度,取决于网络状态 |
获取远程服务器上文件大小:AT+FTPSIZE
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
执行命令 | AT+FTPSIZE | OK +FTPSIZE: 1,0, | 获取文件大小成功 |
OK | 获取文件大小失败 | ||
+FTPSIZE: 1, ,0 | |||
+CME ERROR: | 如果是命令错误 | ||
测试命令 | AT+FTPSIZE=? | OK | |
注意事项 | 文件由命令AT+FTPGETNAME和AT+FTPGETPATH指定 |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
文件大小 | 单位:字节 | ||
错误码 | 与 AT+FTPGET 命令的 定义相同 |
获取远程服务器上文件目录:AT+FTPLIST
语法规则:
命令类型 | 语法 | 返回 |
---|---|---|
执行命令 | AT+FTPLIST= [, ] | 如果 =1,则命令格式为: AT+FTPLIST=1 返回值为: OK或 +CME ERROR: |
如果 =2,则命令格式为: AT+FTPLIST=2, 返回值为: +FTPLIST:2, ….数据… OK | ||
测试命令 | AT+FTPLIST=? | OK |
URC 上报 | 输入AT+FTPLIST=1后, 如果是一个成功的FTP会话,后续会有如下的URC上报: +FTPLIST:1,1 如果是FTP数据传输结束,后续会有如下的URC上报: +FTPLIST:1,0 如果FTP会话失败,后续会有如下的URC上报: +FTPLIST:1, |
参数定义:
参数 | 定义 | 取值 | 对取值的说明 |
---|---|---|---|
工作模式 | 1 | 打开 FTP 获取文件目录会话 | |
2 | 读取 FTP 获取文件目录的数据 | ||
请求的数据的长度 | 1~1460 | ||
实际的数据长度 | |||
同+FTPGET 中 定义 |
保存 FTP 应用上下文:AT+FTPSCONT
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
查询命令 | AT+FTPSCONT? | +FTPSCONT: +FTPSERV: +FTPPORT: +FTPUN: +FTPPW: +FTPCID: +FTPMODE: +FTPTYPE: +FTPPUTOPT: +FTPREST: +FTPGETNAME: +FTPGETPATH: +FTPPUTNAME: +FTPPUTPATH: +FTPTIMEOUT: OK | |
执行命令 | AT+FTPSCONT | OK | 将FTP上下文保存,等模块重启后,将自动载入上下文参数并生效 |
退出当前 FTP 会话:AT+FTPQUIT
语法规则:
命令类型 | 语法 | 返回 | 说明 |
---|---|---|---|
设置命令 | AT+FTPQUIT | OK | 成功 |
ERROR | 失败 | ||
测试命令 | AT+FTPQUIT=? | OK |
服务器搭建教程
可参考
http://doc.openluat.com/article/470/0