B2B网络软件

标题: AIWORK软件FTP完整例子自动链接可以上传可以下载 [打印本页]

作者: YYPOST群发软件    时间: 前天 09:46
标题: AIWORK软件FTP完整例子自动链接可以上传可以下载


AIWORK软件FTP完整例子自动链接可以上传可以下载 B2B网络软件
AIWORK软件FTP完整例子自动链接可以上传可以下载 B2B网络软件
AIWORK软件FTP完整例子自动链接可以上传可以下载 B2B网络软件


/*
   欢迎使用AiWork安卓自动化IDE
   帮助文档: http://help.autoapp.net.cn
   官方地址: www.aiwork24.com
   qq群: 743723025
 */

// 加载FTP库
// 通过rhino.loadDex方法加载名为"ftp.dex"的Java库文件,该文件包含了用于FTP操作的类
rhino.loadDex(project.getResourcesPath() + "ftp.dex");

// 导入所需的FTP操作类和Java IO包
importClass(org.apache.commons.net.ftp.FTP); // 导入FTP类,用于设置文件传输类型等
importClass(org.apache.commons.net.ftp.FTPClient); // 导入FTPClient类,用于创建和管理FTP客户端
importPackage(java.io); // 导入Java IO包,包含处理文件输入输出的类

// FTP配置参数
// 定义FTP服务器的地址、端口号、登录用户名和密码,以及本地文件路径和远程文件路径
var ftpHost = "154.201.80.249"; // FTP服务器的地址
var ftpPort = 21; // FTP服务器的端口号,默认为21
var username = "rtyerye"; // 登录FTP服务器的用户名
var password = "8A66543yy"; // 登录FTP服务器的密码
var remoteUploadDir = "/"; // 远程服务器上文件上传的目标目录
var localUploadFilePath = "/storage/emulated/0/auto/A游戏试玩/logo.png"; // 本地要上传的文件路径
var remoteDownloadFile = "/FTP.rar"; // 远程服务器上要下载的文件
var localDownloadPath = "/storage/emulated/0/auto/A游戏试玩/FTP下载测试.rar"; // 下载文件后本地保存的路径

// 创建FTP客户端对象
var ftpClient = new FTPClient();

// 上传文件
// 创建FileInputStream对象以读取本地文件
var fis = new FileInputStream(new File(localUploadFilePath));

// 连接FTP服务器
ftpClient.connect(ftpHost, ftpPort); // 连接到指定的FTP服务器
ftpClient.setDataTimeout(10000); // 设置数据传输超时时间为10秒
ftpClient.setConnectTimeout(10000); // 设置连接超时时间为10秒
ftpClient.login(username, password); // 使用指定的用户名和密码登录FTP服务器
ftpClient.setFileType(FTP.BINARY_FILE_TYPE); // 设置文件传输类型为二进制文件类型
ftpClient.enterLocalPassiveMode(); // 设置客户端工作模式为被动模式,适用于防火墙环境

// 上传文件到远程服务器
// 将本地文件上传到远程服务器的指定目录
ftpClient.storeFile(remoteUploadDir + new File(localUploadFilePath).getName(), fis);
printl("文件上传成功:" + remoteUploadDir + new File(localUploadFilePath).getName()); // 输出上传成功的消息

// 关闭上传文件流
fis.close(); // 关闭FileInputStream,释放资源

// 登出并断开FTP连接
ftpClient.logout(); // 登出FTP服务器
ftpClient.disconnect(); // 断开与FTP服务器的连接

// 下载文件
// 创建FileOutputStream对象以写入本地文件
var outputStream = new FileOutputStream(new File(localDownloadPath));

// 重新连接FTP服务器
ftpClient.connect(ftpHost, ftpPort); // 再次连接到FTP服务器
ftpClient.login(username, password); // 使用相同的用户名和密码登录

// 设置编码以解决中文乱码问题
ftpClient.setControlEncoding("GB2312"); // 设置FTP控制编码为GB2312,防止中文文件名乱码
ftpClient.setFileType(FTP.BINARY_FILE_TYPE); // 再次设置文件传输类型为二进制文件类型
ftpClient.enterLocalPassiveMode(); // 再次设置被动模式

// 切换到远程文件所在的目录
ftpClient.changeWorkingDirectory("/"); // 切换到远程服务器的根目录

// 从FTP服务器下载文件到本地
// 使用retrieveFile方法从远程服务器下载文件到本地指定路径
ftpClient.retrieveFile(remoteDownloadFile, outputStream);
printl("下载成功!保存到:" + localDownloadPath); // 输出下载成功的消息

// 关闭下载文件流
outputStream.close(); // 关闭FileOutputStream,释放资源

// 登出并断开FTP连接
ftpClient.logout(); // 登出FTP服务器
ftpClient.disconnect(); // 断开与FTP服务器的连接

代码通过rhino.loadDex函数加载了一个名为ftp.dex的库文件。这个文件包含了Apache Commons Net库中用于FTP操作的相关类。Apache Commons Net是一个开源的Java库,提供了与各种网络协议进行交互的类,其中就包括FTP协议。

接着,代码通过importClassimportPackage语句导入了FTP操作所需的一些Java类和包,比如FTPFTPClientFileInputStreamFileFileOutputStream等。这些类和包分别用于创建FTP客户端、处理文件流、以及进行文件的读写操作。

然后,定义了一些FTP服务器的配置参数,包括FTP服务器的地址、端口号、登录用户名和密码,以及本地文件路径和远程文件路径。这些参数是进行FTP操作的基础信息。

代码创建了一个FTPClient对象,并通过connect方法连接到FTP服务器。设置了数据传输超时时间和连接超时时间,以确保在网络状况不佳的情况下,脚本不会无限期地等待。接着通过login方法登录到FTP服务器,并设置了文件类型为二进制文件类型,这对于上传和下载二进制文件(如图片、压缩文件等)是非常必要的。enterLocalPassiveMode方法用于设置FTP客户端的工作模式为被动模式,这对于通过防火墙进行FTP操作通常是必需的。

完成连接和登录后,代码通过storeFile方法将本地文件上传到FTP服务器。这里,FileInputStream被用来读取本地文件,然后通过storeFile方法将文件内容上传到指定的远程目录。上传完成后,使用printl函数输出一条成功信息。

上传完成后,关闭了FileInputStream,并登出FTP服务器,断开连接。接着,为了下载文件,再次创建了一个FileOutputStream对象用于写入本地文件,然后重新连接并登录到FTP服务器。

为了防止中文乱码,设置了FTP控制编码为GB2312,并再次设置了文件类型为二进制文件类型以及被动工作模式。然后通过changeWorkingDirectory方法切换到远程文件所在目录,使用retrieveFile方法下载文件到本地指定路径。下载完成后,同样使用printl输出成功信息,并关闭了FileOutputStreamhttp://bbs.aiwork24.com/thread-130-1-1.html    FTP上传下载例子.rar (131.47 KB, 下载次数: 4)

最后,再次登出FTP服务器,并断开连接,完成了整个FTP上传和下载的操作流程。






欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2