AIWROK软件FTP完整例子自动链接可以上传可以下载
<p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">代码通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">rhino.loadDex</code>函数加载了一个名为<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">ftp.dex</code>的库文件。这个文件包含了Apache Commons Net库中用于FTP操作的相关类。Apache Commons Net是一个开源的Java库,提供了与各种网络协议进行交互的类,其中就包括FTP协议。</p><p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">接着,代码通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">importClass</code>和<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">importPackage</code>语句导入了FTP操作所需的一些Java类和包,比如<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FTP</code>、<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FTPClient</code>、<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FileInputStream</code>、<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">File</code>、<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FileOutputStream</code>等。这些类和包分别用于创建FTP客户端、处理文件流、以及进行文件的读写操作。</p><p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">然后,定义了一些FTP服务器的配置参数,包括FTP服务器的地址、端口号、登录用户名和密码,以及本地文件路径和远程文件路径。这些参数是进行FTP操作的基础信息。</p><p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">代码创建了一个<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FTPClient</code>对象,并通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">connect</code>方法连接到FTP服务器。设置了数据传输超时时间和连接超时时间,以确保在网络状况不佳的情况下,<a href="http://www.postbbs.com/" target="_blank" class="relatedlink" style="color: rgb(133, 42, 42); transition: all 0.2s ease 0s; border-bottom: 1px solid blue;">脚本</a>不会无限期地等待。接着通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">login</code>方法登录到FTP服务器,并设置了文件类型为二进制文件类型,这对于上传和下载二进制文件(如图片、压缩文件等)是非常必要的。<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">enterLocalPassiveMode</code>方法用于设置FTP客户端的工作模式为被动模式,这对于通过防火墙进行FTP操作通常是必需的。</p><p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">完成连接和登录后,代码通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">storeFile</code>方法将本地文件上传到FTP服务器。这里,<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FileInputStream</code>被用来读取本地文件,然后通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">storeFile</code>方法将文件内容上传到指定的远程目录。上传完成后,使用<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">printl</code>函数输出一条成功信息。</p><p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">上传完成后,关闭了<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FileInputStream</code>,并登出FTP服务器,断开连接。接着,为了下载文件,再次创建了一个<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FileOutputStream</code>对象用于写入本地文件,然后重新连接并登录到FTP服务器。</p><p style="margin-bottom: 1.5em; font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">为了防止中文乱码,设置了FTP控制编码为<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">GB2312</code>,并再次设置了文件类型为二进制文件类型以及被动工作模式。然后通过<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">changeWorkingDirectory</code>方法切换到远程文件所在目录,使用<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">retrieveFile</code>方法下载文件到本地指定路径。下载完成后,同样使用<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">printl</code>输出成功信息,并关闭了<code style="box-sizing: border-box; font-family: Consolas, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace; padding: 3px; margin-right: 4px; margin-left: 5px; background: rgb(249, 249, 249); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: rgb(64, 158, 255);">FileOutputStream</code>。</p><p style="font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);">最后,再次登出FTP服务器,并断开连接,完成了整个FTP上传和下载的操作流程。</p><p style="font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);"><br></p><p style="font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);"></p><p style="font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);"><br></p><div class="blockcode"><blockquote>/*<br>欢迎使用AiWork安卓自动化IDE<br>qq群: 711841924<br>*/<br><br>// 加载FTP库<br>rhino.loadDex(project.getResourcesPath() + "ftp.dex");<br><br>importClass(org.apache.commons.net.ftp.FTP);<br>importClass(org.apache.commons.net.ftp.FTPClient);<br>importPackage(java.io);<br><br>// FTP配置参数<br>var ftpHost = "154.201.80.249";<br>var ftpPort = 21;<br>var username = "rtyerye";<br>var password = "8AafKDs4KhMDR3yy";<br>var remoteUploadDir = "/"; // 远程上传目录<br>var localUploadFilePath = "/storage/emulated/0/auto/A游戏试玩/logo.png"; // 本地上传文件路径<br>var remoteDownloadFile = "/FTP.rar"; // 远程下载文件<br>var localDownloadPath = "/storage/emulated/0/auto/A游戏试玩/FTP下载测试.rar"; // 本地下载路径<br><br>var ftpClient = new FTPClient();<br><br>// 上传文件<br>var fis = new FileInputStream(new File(localUploadFilePath));<br><br>// 连接FTP服务器<br>ftpClient.connect(ftpHost, ftpPort);<br>ftpClient.setDataTimeout(10000); // 设置超时时间<br>ftpClient.setConnectTimeout(10000);<br>ftpClient.login(username, password);<br>ftpClient.setFileType(FTP.BINARY_FILE_TYPE);<br>ftpClient.enterLocalPassiveMode();<br><br>// 上传文件<br>ftpClient.storeFile(remoteUploadDir + new File(localUploadFilePath).getName(), fis);<br>printl("文件上传成功:" + remoteUploadDir + new File(localUploadFilePath).getName());<br><br>// 关闭上传文件流<br>fis.close();<br><br>// 登出并断开FTP连接<br>ftpClient.logout();<br>ftpClient.disconnect();<br><br>// 下载文件<br>var outputStream = new FileOutputStream(new File(localDownloadPath));<br><br>// 重新连接FTP服务器<br>ftpClient.connect(ftpHost, ftpPort);<br>ftpClient.login(username, password);<br><br>// 编码设置(解决中文乱码)<br>ftpClient.setControlEncoding("GB2312");<br>ftpClient.setFileType(FTP.BINARY_FILE_TYPE);<br>ftpClient.enterLocalPassiveMode();<br><br>// 切换到根目录<br>ftpClient.changeWorkingDirectory("/");<br><br>// 执行下载<br>ftpClient.retrieveFile(remoteDownloadFile, outputStream);<br>printl("下载成功!保存到:" + localDownloadPath);<br><br>// 关闭下载文件流<br>outputStream.close();<br><br>// 登出并断开FTP连接<br>ftpClient.logout();<br>ftpClient.disconnect();</blockquote></div><p style="font-family: "Microsoft YaHei", Helvetica, "Meiryo UI", "Malgun Gothic", "Segoe UI", "Trebuchet MS", Monaco, monospace, Tahoma, STXihei, 华文细黑, STHeiti, "Helvetica Neue", "Droid Sans", "wenquanyi micro hei", FreeSans, Arimo, Arial, SimSun, 宋体, Heiti, 黑体, sans-serif; font-size: 12px; box-sizing: border-box; color: rgb(51, 51, 51);"><br></p><p></p>
页:
[1]