FTP/FTPS ======== FTP --- 作者:闫国梁 最后更新时间:2020年8月12日 关键词:\ **FTP,文件服务器,FTP搭建** 1 概述 ------ FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。 默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。模块ftp默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。 2 相关AT指令介绍 ---------------- 2.1 设置 FTP 控制端口:AT+FTPPORT --------------------------------- 语法规则: ======== ============ ============ ============ 命令类型 语法 返回 说明 ======== ============ ============ ============ 设置命令 AT+FTPPORT= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPPORT? +FTPPORT: OK 测试命令 AT+FTPPORT=? OK ======== ============ ============ ============ 参数定义: ==== ============== ======= ============ 参数 定义 取值 对取值的说明 ==== ============== ======= ============ \ FTP 控制端口号 1~65535 缺省值为 21 ==== ============== ======= ============ 2.2 设置 FTP 主动或被动模式:AT+FTPMODE --------------------------------------- 语法规则: ======== ============ ============ ============ 命令类型 语法 返回 说明 ======== ============ ============ ============ 设置命令 AT+FTPMODE= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPMODE? +FTPMODE: OK 测试命令 AT+FTPMODE=? OK ======== ============ ============ ============ 参数定义: ==== ================ ==== ==================== 参数 定义 取值 对取值的说明 ==== ================ ==== ==================== \ FTP 主动被动模式 0 主动模式(暂不支持) \ 1 被动模式 ==== ================ ==== ==================== 2.3 设置 FTP 数据传输类型:AT+FTPTYPE ------------------------------------- 语法规则: ======== ============ ============ ============ 命令类型 语法 返回 说明 ======== ============ ============ ============ 设置命令 AT+FTPTYPE= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPTYPE? +FTPTYPE: OK 测试命令 AT+FTPTYPE=? OK ======== ============ ============ ============ 参数定义: ==== ================ ==== ================= 参数 定义 取值 对取值的说明 ==== ================ ==== ================= \ FTP 数据传输类型 “A” FTP ASCII 字符集 \ “I” FTP Binary 字符集 ==== ================ ==== ================= 2.4 设置 FTP 输入类型:AT+FTPPUTOPT ----------------------------------- 语法规则: ======== ============== ============== ============ 命令类型 语法 返回 说明 ======== ============== ============== ============ 设置命令 AT+FTPPUTOPT= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPPUTOPT? +FTPPUTOPT: OK 测试命令 AT+FTPPUTOPT=? OK ======== ============== ============== ============ 参数定义: ==== ================ ====== ============== 参数 定义 取值 对取值的说明 ==== ================ ====== ============== \ FTP 数据传输类型 “APPE” 添加文件 \ “STOU” 存储唯一的文件 \ “STOR” 存储文件 ==== ================ ====== ============== 2.5 设置 FTP 承载标识:AT+FTPCID -------------------------------- 语法规则: ======== =========== =========== ============ 命令类型 语法 返回 说明 ======== =========== =========== ============ 设置命令 AT+FTPCID= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPCID? +FTPCID: OK 测试命令 AT+FTPCID=? OK ======== =========== =========== ============ 参数定义: ==== ============ ==== ============================= 参数 定义 取值 对取值的说明 ==== ============ ==== ============================= \ FTP 承载标识 1~3 同+SAPBR 中定义。缺省值为 0。 ==== ============ ==== ============================= 2.6 设置 FTP 下载续传:AT+FTPREST --------------------------------- 语法规则: ======== ============ ============ ============ 命令类型 语法 返回 说明 ======== ============ ============ ============ 设置命令 AT+FTPREST= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPREST? +FTPREST: OK 测试命令 AT+FTPREST=? OK ======== ============ ============ ============ 参数定义: ==== ============ ==== ============ 参数 定义 取值 对取值的说明 ==== ============ ==== ============ \ 要续传的断点 ==== ============ ==== ============ 2.7 设置 FTP 服务器地址:AT+FTPSERV ----------------------------------- 语法规则: ======== ============ ============ ============ 命令类型 语法 返回 说明 ======== ============ ============ ============ 设置命令 AT+FTPSERV= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPSERV? +FTPSERV: OK 测试命令 AT+FTPSERV=? OK ======== ============ ============ ============ 参数定义: +----+------------------+---+-------------------------------------------+ | 参 | 定义 | 取 | 对取值的说明 | | 数 | | 值 | | +====+==================+===+===========================================+ | | FTP 服务器地址, | | 32-bit 十 进 制 数 , 用 . 分 开 , 形 式 | | | IP 或域名 | | 如 : xxx.xxx.xxx.xxx。 如果是 | | | | | DNS,则为长度不超过 49 的 ASCII 字符串。 | +----+------------------+---+-------------------------------------------+ 2.8 设置 FTP 用户名称:AT+FTPUN ------------------------------- 语法规则: ======== ========== ========== ============ 命令类型 语法 返回 说明 ======== ========== ========== ============ 设置命令 AT+FTPUN= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPUN? +FTPUN: OK 测试命令 AT+FTPUN=? OK ======== ========== ========== ============ 参数定义: ==== ========== ==== ================================= 参数 定义 取值 对取值的说明 ==== ========== ==== ================================= \ FTP 用户名 为长度不超过 49 的 ASCII 字符串。 ==== ========== ==== ================================= 2.9 设置 FTP 密码:AT+FTPPW --------------------------- 语法规则: ======== ========== ========== ============ 命令类型 语法 返回 说明 ======== ========== ========== ============ 设置命令 AT+FTPPW= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPPW? +FTPPW: OK 测试命令 AT+FTPPW=? OK ======== ========== ========== ============ 参数定义: ==== ======== ==== ================================= 参数 定义 取值 对取值的说明 ==== ======== ==== ================================= \ FTP 密码 为长度不超过 49 的 ASCII 字符串。 ==== ======== ==== ================================= 2.10 设置 FTP 下载文件名称:AT+FTPGETNAME ----------------------------------------- 设置服务器端目标文件的名称。 语法规则: ======== =============== =============== ============ 命令类型 语法 返回 说明 ======== =============== =============== ============ 设置命令 AT+FTPGETNAME= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPGETNAME? +FTPGETNAME: OK 测试命令 AT+FTPGETNAME=? OK ======== =============== =============== ============ 参数定义: ==== ================ ==== ================================= 参数 定义 取值 对取值的说明 ==== ================ ==== ================================= \ FTP 下载文件名称 为长度不超过 99 的 ASCII 字符串。 ==== ================ ==== ================================= 2.11 设置 FTP 下载文件路径:AT+FTPGETPATH ----------------------------------------- 本命令是设置目标文件在服务器端的路径。 语法规则: ======== =============== =============== ============ 命令类型 语法 返回 说明 ======== =============== =============== ============ 设置命令 AT+FTPGETPATH= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPGETPATH? +FTPGETPATH: OK 测试命令 AT+FTPGETPATH=? OK ======== =============== =============== ============ 参数定义: ==== ================ ==== ================================ 参数 定义 取值 对取值的说明 ==== ================ ==== ================================ \ FTP 下载文件路径 长度不超过 255 的 ASCII 字符串。 ==== ================ ==== ================================ 2.12 设置 FTP 上传文件名称:AT+FTPPUTNAME ----------------------------------------- 设置将文件上传到服务器后的保存名称。 语法规则: ======== =============== =============== ============ 命令类型 语法 返回 说明 ======== =============== =============== ============ 设置命令 AT+FTPPUTNAME= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPPUTNAME? +FTPPUTNAME: OK 测试命令 AT+FTPPUTNAME=? OK ======== =============== =============== ============ 参数定义: ==== ================ ==== =============================== 参数 定义 取值 对取值的说明 ==== ================ ==== =============================== \ FTP 上传文件名称 长度不超过 99 的 ASCII 字符串。 ==== ================ ==== =============================== 2.13 设置 FTP 上传文件路径:AT+FTPPUTPATH ----------------------------------------- 设置将文件上传到服务器后的保存目录。 语法规则: ======== =============== =============== ============ 命令类型 语法 返回 说明 ======== =============== =============== ============ 设置命令 AT+FTPPUTPATH= OK 正常返回 \ ERROR 输入格式有误 查询命令 AT+FTPPUTPATH? +FTPPUTPATH: OK 测试命令 AT+FTPPUTPATH=? OK ======== =============== =============== ============ 参数定义: ==== ================ ==== =============================== 参数 定义 取值 对取值的说明 ==== ================ ==== =============================== \ FTP 上传文件路径 长度不超过 99 的 ASCII 字符串。 ==== ================ ==== =============================== 2.14 远程服务器上创建文件目录:AT+FTPMKD ---------------------------------------- 语法规则: +----------+------------------+-----------------+----------------+ | 命令类型 | 语法 | 返回 | 说明 | +==========+==================+=================+================+ | 执行命令 | AT+FTPMKD | OK +FTPMKD: 1,0 | 创建成功 | +----------+------------------+-----------------+----------------+ | | | OK +FTPMKD: 1, | 创建失败 | +----------+------------------+-----------------+----------------+ | | | +CME ERROR: | 如果是命令错误 | +----------+------------------+-----------------+----------------+ | 测试命令 | AT+FTPMKD=? | OK | | +----------+------------------+-----------------+----------------+ | 注意事项 | 执行命令创建的 | | | | | 文件目录由命令A | | | | | T+FTPGETPATH定义 | | | +----------+------------------+-----------------+----------------+ 参数定义: ==== ====== ==== =========================== 参数 定义 取值 对取值的说明 ==== ====== ==== =========================== \ 错误码 与 AT+FTPGET 命令的定义相同 ==== ====== ==== =========================== 2.15 远程服务器上删除文件目录:AT+FTPRMD ---------------------------------------- 语法规则: +----------+------------------+-----------------+----------------+ | 命令类型 | 语法 | 返回 | 说明 | +==========+==================+=================+================+ | 执行命令 | AT+FTPRMD | OK +FTPRMD: 1,0 | 删除成功 | +----------+------------------+-----------------+----------------+ | | | OK +FTPRMD: 1, | 删除失败 | +----------+------------------+-----------------+----------------+ | | | +CME ERROR: | 如果是命令错误 | +----------+------------------+-----------------+----------------+ | 测试命令 | AT+FTPRMD=? | OK | | +----------+------------------+-----------------+----------------+ | 注意事项 | 执行命令删除的 | | | | | 文件目录由命令A | | | | | T+FTPGETPATH定义 | | | +----------+------------------+-----------------+----------------+ 参数定义: ==== ====== ==== =========================== 参数 定义 取值 对取值的说明 ==== ====== ==== =========================== \ 错误码 与 AT+FTPGET 命令的定义相同 ==== ====== ==== =========================== 2.16 下载文件: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 主动退出 ==== ================== ====== ================================== 2.17 上传文件:AT+FTPPUT ------------------------ 语法规则: +---+-------------+--------------------------+--------------------------+ | 命 | 语法 | 返回 | 说明 | | 令 | | | | | 类 | | | | | 型 | | | | +===+=============+==========================+==========================+ | 设 | AT | OK | 输入AT+FTPPUT=1的返回 | | 置 | +FTPPUT=[,] | | | | 命 | | | | | 令 | | | | +---+-------------+--------------------------+--------------------------+ | | | +FTPPUT:2, …….. //input | 输入: AT+FTPPUT=2, | | | | data here OK | 的返回 | +---+-------------+--------------------------+--------------------------+ | | | OK +FTPPUT: 1,0 | 输入: AT+FTPPUT=2,0 | | | | | 的返回 | +---+-------------+--------------------------+--------------------------+ | U | + | 输 | | | R | FTPPUT:1,1, | 入AT+FTPPUT=1后,有此上 | | | C | | 报,表示可以上传数据了此 | | | 上 | | 时通过输入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- \ 确认可以上传的数据长度 \ 单次可以上传的最大的长度,取决于网络状态 ==== ======================================== ==== =============== 2.18 下载文件(扩展):AT+FTPEXTGET --------------------------------- 语法规则: +---+-----------------------------+-----------------------------+-----+ | 命 | 语法 | 返回 | 说 | | 令 | | | 明 | | 类 | | | | | 型 | | | | +===+=============================+=============================+=====+ | 设 | AT+FTPEXTGET= | OK | 当 | | 置 | | | =0 | | 命 | | | 或1 | | 令 | | | | +---+-----------------------------+-----------------------------+-----+ | | AT+FTPEXTGET=, | +FTPEXTGET:2, OK | 当 | | | | | =2 | +---+-----------------------------+-----------------------------+-----+ | | AT+FTPEXTGET=,, | +FTPEXTGET:3, …… | 当 | | | | //这里是输出到串口的数据 OK | =3 | +---+-----------------------------+-----------------------------+-----+ | 查 | AT+FTPEXTGET? | +FTPEXTGET: [,] OK | | | 询 | | | | | 命 | | | | | 令 | | | | +---+-----------------------------+-----------------------------+-----+ | 测 | AT+FTPEXTGET=? | OK | | | 试 | | | | | 命 | | | | | 令 | | | | +---+-----------------------------+-----------------------------+-----+ | U | +FTPEXTGET:1,0 | =1且 | | | R | | FTPEXTGET结束,会有如此上报 | | | C | | | | | 上 | | | | | 报 | | | | +---+-----------------------------+-----------------------------+-----+ | | +FTPEXTGET:1, | =1且 | | | | | FTPEXTGET出错,会有如此上报 | | | | | 。错误码定义请参考AT+FTPGET | | | | | 错误码定义 | | +---+-----------------------------+-----------------------------+-----+ | | +FTPEXTGET:2, | =2 | | +---+-----------------------------+-----------------------------+-----+ | | +FTPEXTGET:3, | =3 | | +---+-----------------------------+-----------------------------+-----+ | 注 | 1) 当FTPEXTPUT | | | | 意 | =1时,不可使用本命令 2) | | | | 事 | 如 | | | | 项 | 果文件大小()<300KB,可以使 | | | | | 用这个命令;如果文件大小() | | | | | >=300KB,请使用缺省的FTPGET | | | | | method (AT+FTPEXTGET=0) 3) | | | | | 本命令的使用方法请参考本 | | | | | 章最后一部分:使用方法举例 | | | +---+-----------------------------+-----------------------------+-----+ 参数定义: +------+--------------------------------------+---------+---------------------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +======+======================================+=========+===========================+ | | 工作模式 | 0 | 使用缺省的FTPGET方法 | +------+--------------------------------------+---------+---------------------------+ | | | 1 | 使用扩展的FTPGET方法 | +------+--------------------------------------+---------+---------------------------+ | | | 2 | 保存下载的数据到文件中 | +------+--------------------------------------+---------+---------------------------+ | | | 3 | 输出下载的数据到串口 | +------+--------------------------------------+---------+---------------------------+ | | 文件名 | | 字符串型,最长64个字符 | +------+--------------------------------------+---------+---------------------------+ | | 保存到文件的所有数据长度,用于mode 2 | <302512 | 单位:字节 | +------+--------------------------------------+---------+---------------------------+ | | 输出到串口的数据长度,用于mode 3 | <302512 | 单位:字节 | +------+--------------------------------------+---------+---------------------------+ | | 读取文件数据的起始位置,用于mode 3 | | | +------+--------------------------------------+---------+---------------------------+ | | 读取长度,用于mode 3 | | 单位:字节 | +------+--------------------------------------+---------+---------------------------+ | | FTPEXTGET的状态 | 0 | 不在FTPEXTGET过程中 | +------+--------------------------------------+---------+---------------------------+ | | | 1 | 处于FTPEXTGET过程 | +------+--------------------------------------+---------+---------------------------+ | | | | | +------+--------------------------------------+---------+---------------------------+ | | 错误码 | | 与AT+FTPGET命令的定义相同 | +------+--------------------------------------+---------+---------------------------+ 2.19 上传文件(扩展):AT+FTPEXTPUT --------------------------------- 语法规则: ======== ================================================== ==== ======= 命令类型 语法 返回 说明 ======== ================================================== ==== ======= 设置命令 AT+FTPEXTPUT=[,,,] OK 当=0或1 \ +FTPEXTPUT: , …… //这里从串口输入数据 OK 当=2 测试命令 AT+FTPEXTPUT=? OK 注意事项 本命令的使用方法请参考本章最后一部分:使用方法举例 ======== ================================================== ==== ======= 参数定义: ==== ====================== ============ ==================== 参数 定义 取值 对取值的说明 ==== ====================== ============ ==================== \ 工作模式 0 使用缺省的FTPPUT方法 \ 1 使用扩展的FTPPUT方法 \ 2 将数据PUT到RAM \ 每次PUT的起始位置 0-300K 单位:byte \ 每次PUT的数据长度 0-300K 单位:byte \ 串口数据传输的超时时间 1000-1000000 单位:ms ==== ====================== ============ ==================== 2.20 下载文件并保存到文件系统中:AT+FTPGETTOFS ---------------------------------------------- 语法规则: +----------+------------------------+----------------------+------+ | 命令类型 | 语法 | 返回 | | +==========+========================+======================+======+ | 设置命令 | AT+FTPGETTOFS=,[,,] | OK | 成功 | +----------+------------------------+----------------------+------+ | | | ERROR | 失败 | +----------+------------------------+----------------------+------+ | 查询命令 | AT+FTPGETTOFS? | +FTPGETTOFS: [,,] OK | | +----------+------------------------+----------------------+------+ | URC上报 | +FTPGETTOFS:0, | 如果下载成功 | | +----------+------------------------+----------------------+------+ | | +FTPGETTOFS: | 如果下载失败 | | +----------+------------------------+----------------------+------+ | 测试命令 | AT+FTPGETTOFS=? | OK | | +----------+------------------------+----------------------+------+ | 注意事项 | 重连以后会断点续传 | | | | | 如果两次 | | | | | 下载都用同一个文件名, | | | | | 上次下载的内容会被覆盖 | | | +----------+------------------------+----------------------+------+ 参数定义: +------+-------------------------+-------+-------------------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +======+=========================+=======+=========================+ | | 工作模式 | 0 | 不在FTPGETTOFS过程 | +------+-------------------------+-------+-------------------------+ | | | 1 | 处于FTPGETTOFS过程 | +------+-------------------------+-------+-------------------------+ | | 文件保存的位置, | 0 | 保存于ROM,文件夹 | | | 是ROM还是SD卡。Disk1或 | | 为“Disk1::raw-latex:`\ | | | Disk2可被AT+FSDRIVE获取 | | user`:raw-latex:`\ftp`” | +------+-------------------------+-------+-------------------------+ | | | 1 | 保存于SD卡,文件夹为“D | | | | | isk2::raw-latex:`\ftp`” | +------+-------------------------+-------+-------------------------+ | | 文件名 | | 字符串型,最长64个字符 | +------+-------------------------+-------+-------------------------+ | | 自动重连次数 | 0-255 | 缺省值:3 | +------+-------------------------+-------+-------------------------+ | | 等多少秒开始自动重连 | 0-60 | 单位:秒,缺省值:5 | +------+-------------------------+-------+-------------------------+ | | 当前 | | | | | 从FTP服务器GET多少数据 | | | +------+-------------------------+-------+-------------------------+ | | 当前 | | | | | 保存到文件系统多少数据 | | | +------+-------------------------+-------+-------------------------+ | | 总共 | | | | | 保存到文件系统多少数据 | | | +------+-------------------------+-------+-------------------------+ | | 错误码 | | 与 | | | | | AT+FTPGET命令的定义相同 | +------+-------------------------+-------+-------------------------+ 2.21 从文件系统上传文件到服务器:AT+FTPPUTFRMFS ----------------------------------------------- 语法规则: +----------+--------------------------+----------------------------+ | 命令类型 | 语法 | 返回 | +==========+==========================+============================+ | 执行命令 | AT+FTPPUTFRMFS=[,,] | OK | +----------+--------------------------+----------------------------+ | 查询命令 | AT+FTPPUTFRMFS? | +FTPPUTFRMFS: [,] OK | +----------+--------------------------+----------------------------+ | 测试命令 | AT+FTPPUTFRMFS=? | OK | +----------+--------------------------+----------------------------+ | URC上报 | +FTPPUTFRMFS:0, | 当上传结束,有此上报 | +----------+--------------------------+----------------------------+ | | +FTPPUTFRMFS: | 当上传出错,有此上报。 | | | | 定义 | | | | 请参考AT+FTPGET命令的定义 | +----------+--------------------------+----------------------------+ | 注意事项 | 自动重连后从断点开始续传 | | +----------+--------------------------+----------------------------+ 参数定义: +------+-------------------------+-------+-------------------------+ | 参数 | 定义 | 取值 | 对取值的说明 | +======+=========================+=======+=========================+ | | 文件名 | | 字符串型,由数字 | | | | | 和字母组成,最长128字节 | +------+-------------------------+-------+-------------------------+ | | 自动重连次数 | 0-255 | 缺省值:3 | +------+-------------------------+-------+-------------------------+ | | 等多少秒开始自动重连 | 0-60 | 单位:秒,缺省值:5 | +------+-------------------------+-------+-------------------------+ | | FTP上传状态 | 0 | 不在上传状态 | +------+-------------------------+-------+-------------------------+ | | | 1 | 处于上传状态 | +------+-------------------------+-------+-------------------------+ | | 当前从 | | 单位:字节 | | | 文件系统上传了多少数据 | | | +------+-------------------------+-------+-------------------------+ | | 从文 | | 单位:字节 | | | 件系统共上传了多少数据 | | | +------+-------------------------+-------+-------------------------+ 2.22 从文件系统加载到RAM中并用FTPPUT上传:AT+FTPFILEPUT ------------------------------------------------------- 语法规则: ======== ================================= ==== 命令类型 语法 返回 ======== ================================= ==== 设置命令 AT+FTPFILEPUT=[,] OK 测试命令 AT+FTPFILEPUT=? OK 注意事项 当FTPEXTPUT命令=1时,本命令不可用 ======== ================================= ==== 2.23 获取远程服务器上文件目录:AT+FTPLIST ----------------------------------------- 语法规则: +---+--------------------------------+--------------------------------+ | 命 | 语法 | 返回 | | 令 | | | | 类 | | | | 型 | | | +===+================================+================================+ | 执 | AT+FTPLIST=[,] | 如果=1,则命令格式为: | | 行 | | AT+FTPLIST=1 返回值为: OK或 | | 命 | | +CME ERROR: | | 令 | | | +---+--------------------------------+--------------------------------+ | | | 如果=2,则命令格式为: | | | | AT+FTPLIST=2, 返回值为: | | | | +FTPLIST:2, ….数据… OK | +---+--------------------------------+--------------------------------+ | 测 | AT+FTPLIST=? | OK | | 试 | | | | 命 | | | | 令 | | | +---+--------------------------------+--------------------------------+ | U | 输入AT+FTPLIST=1后, | | | R | 如果是一个成功的FT | | | C | P会话,后续会有如下的URC上报: | | | 上 | +FTPLIST:1,1 | | | 报 | 如果是FTP数据传输 | | | | 结束,后续会有如下的URC上报: | | | | +FTPLIST:1,0 | | | | 如果FTP会话 | | | | 失败,后续会有如下的URC上报: | | | | +FTPLIST:1, | | +---+--------------------------------+--------------------------------+ 参数定义: ==== ================ ====== ========================== 参数 定义 取值 对取值的说明 ==== ================ ====== ========================== \ 工作模式 1 打开FTP 获取文件目录会话 \ 2 读取FTP 获取文件目录的数据 \ 请求的数据的长度 1~1460 \ 实际的数据长度 1~1460 \ 同+FTPGET中定义 ==== ================ ====== ========================== 2.24 获取远程服务器上文件大小:AT+FTPSIZE ----------------------------------------- 语法规则: +----------+------------------+------------------+------------------+ | 命令类型 | 语法 | 返回 | 说明 | +==========+==================+==================+==================+ | 执行命令 | AT+FTPSIZE | OK +FTPSIZE: | 获取文件大小成功 | | | | 1,0, | | +----------+------------------+------------------+------------------+ | | | OK +FTPSIZE: | 获取文件大小失败 | | | | 1,,0 | | +----------+------------------+------------------+------------------+ | | | +CME ERROR: | 如果是命令错误 | +----------+------------------+------------------+------------------+ | 测试命令 | AT+FTPSIZE=? | OK | | +----------+------------------+------------------+------------------+ | 注意事项 | 文件由命令 | | | | | AT+FTPGETNAME和A | | | | | T+FTPGETPATH指定 | | | +----------+------------------+------------------+------------------+ 参数定义: ==== ======== ==== ========================= 参数 定义 取值 对取值的说明 ==== ======== ==== ========================= \ 文件大小 单位:字节 \ 错误码 与AT+FTPGET命令的定义相同 ==== ======== ==== ========================= 2.25 获取FTP状态:AT+FTPSTATE ----------------------------- 语法规则: ======== ============= ============= 命令类型 语法 返回 ======== ============= ============= 执行命令 AT+FTPSTATE +FTPSTATE: OK 测试命令 AT+FTPSTATE=? OK ======== ============= ============= 参数定义: ==== ======== ==== ========================================== 参数 定义 取值 对取值的说明 ==== ======== ==== ========================================== \ 工作状态 0 Idle \ 1 FTP会话进行中,包括FTPGET、FTPPUT、FTPDELE ==== ======== ==== ========================================== 2.26 保存FTP应用上下文:AT+FTPSCONT ----------------------------------- 语法规则: +---+-----+------------------------------+----------------------------+ | 命 | 语 | 返回 | 说明 | | 令 | 法 | | | | 类 | | | | | 型 | | | | +===+=====+==============================+============================+ | 查 | AT+ | +FTPSCONT: +FTPSERV: | | | 询 | FTP | +FTPPORT: +FTPUN: +FTPPW: | | | 命 | SCO | +FTPCID: +FTPMODE: +FTPTYPE: | | | 令 | NT? | +FTPPUTOPT: +FTPREST: | | | | | +FTPGETNAME: +FTPGETPATH: | | | | | +FTPPUTNAME: +FTPPUTPATH: | | | | | +FTPTIMEOUT: OK | | +---+-----+------------------------------+----------------------------+ | 执 | AT | OK | 将FTP | | 行 | +FT | | 上下文保存,等模块重启后, | | 命 | PSC | | 将自动载入上下文参数并生效 | | 令 | ONT | | | +---+-----+------------------------------+----------------------------+ 2.27 删除服务器上指定的文件:AT+FTPDELE --------------------------------------- 语法规则: +----------+----------------------------+----------------------------+ | 命令类型 | 语法 | 返回 | +==========+============================+============================+ | 执行命令 | AT+FTPDELE | OK | +----------+----------------------------+----------------------------+ | 测试命令 | AT+FTPDELE=? | OK | +----------+----------------------------+----------------------------+ | URC上报 | +FTPDELE:1,0 | 表示删除成功。 | | | | 第一个参数1表示FTP会话打开 | +----------+----------------------------+----------------------------+ | | +FTPDELE:1, | 表示FTP文件删除失败。 | | | | 错误码定义请参考AT+FTPGET | | | | 错误码定义 | +----------+----------------------------+----------------------------+ | 注意事项 | 文件由命令AT+FTP | | | | GETNAME和AT+FTPGETPATH指定 | | +----------+----------------------------+----------------------------+ 2.28 退出当前FTP会话:AT+FTPQUIT -------------------------------- 语法规则: ======== ============ ===== ==== 命令类型 语法 返回 说明 ======== ============ ===== ==== 设置命令 AT+FTPQUIT OK 成功 \ ERROR 失败 测试命令 AT+FTPQUIT=? OK ======== ============ ===== ==== 3 AT指令示例 ------------ https://luatdoc.papapoi.com/740/ 4 相关资料以及购买链接 ---------------------- `《AT指令手册》 `__ 相关开发板购买链接 `Air724UG开发板 `__ `Air724 开发板使用说明 `__ 5 常见问题 ---------- 服务器搭建教程 -------------- 可参考 https://luatdoc.papapoi.com/470/