FTP上传下载

news/2024/12/22 20:54:44/

这里FTP上传使用的是:

commons-net:commons-net:3.6

首先登录

FTPClient client = new FTPClient();// 连接FPT服务器,设置IP及端口client.connect(host地址, port端口);client.login(userName用户名, passWord密码);client.changeWorkingDirectory(filePath文件夹名字);//设置上传模式client.setFileType(FTP.BINARY_FILE_TYPE);//是否开启被动模式client.setRemoteVerificationEnabled(false);client.enterLocalPassiveMode();//设置utf-8编码client.setControlEncoding("utf-8");

开始上传

        File file = new File("本地文件路径");if (file.exists()) {//是否是文件夹if (file.isDirectory()) {//返回某个目录下所有文件和目录的绝对路径,返回类型File[]File[] children = file.listFiles();for (final File f : children) {File uploadFile = new File("路径"+ f.getName());FileInputStream srcFileStream = null;try {srcFileStream = new FileInputStream(uploadFile);} catch (FileNotFoundException e) {e.printStackTrace(); }boolean b = false;try {client.setCopyStreamListener(new MyUploadListener());//上传文件b = client.storeFile(上传目标文件夹 + "/" + 文件名称, srcFileStream);if (b) {("上传成功")srcFileStream.close();} else {srcFileStream.close();("上传失败");}} catch (IOException e) {e.printStackTrace();}}}}

上传监听:

class MyUploadListener implements CopyStreamListener{@Overridepublic void bytesTransferred(CopyStreamEvent event) {}@Overridepublic void bytesTransferred(long totalBytesTransferred, int bytesTransferred, long streamSize) {("上传中:"+totalBytesTransferred+" byte")}}

现在是FTP下载:

使用的是ftp4j-1.7.2.jar

首先登录:

FTPClient client = new FTPClient();
// 连接FPT服务器,设置IP及端口client.connect(host路径, port端口);client.login(userName用户名, password密码);client.changeDirectory(filePath进入文件夹);

开始下载:

for (String fileName : 下载服务器文件夹) {Log.e(TAG, "进入log循环");if (!(fileName == null || fileName.isEmpty())) {//获取文件夹里所有文件try {loginClient.download(fileName, new File("下载文件夹地址" + fileName), new MyTest1Listener());} catch (IOException e) {e.printStackTrace();} catch (FTPIllegalReplyException e) {e.printStackTrace();} catch (FTPException e) {e.printStackTrace();} catch (FTPDataTransferException e) {e.printStackTrace();} catch (FTPAbortedException e) {e.printStackTrace();}}
}

下载监听:

class MyTest1Listener implements FTPDataTransferListener {long downSize = 0;@Overridepublic void aborted() {("开始下载")}@Overridepublic void completed() {("下载完成")}@Overridepublic void failed() {("下载失败")}@Overridepublic void started() {// TODO Auto-generated method stub("下载开始")}@Overridepublic void transferred(int arg0) {// TODO Auto-generated method stubdownSize += arg0;("文件下载中:" + downSize + "byte")}
}

http://www.ppmy.cn/news/48213.html

相关文章

Django | 一文完美解决admin增加新用户只有用户名密码和确认密码的问题

文章目录 如图所示,下面给出解决方案: 如果您使用 使用 Django 默认的后台管理界面添加用户时,只看到了三个字段(通常是 username、password和 repassword),那么可以通过定义 add_fieldsets 属性来增加更多…

【eXtplorer】本地搭建免费在线文件管理器并实现在外远程登录

文章目录 1. 前言2. eXtplorer网站搭建2.1 eXtplorer下载和安装2.2 eXtplorer网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1. 前言 通过互联网传输文件,是互联网最重要的应用之一,无论是…

我把Solon打包成了native image,速度快的惊人

我刚开始对 Solon 感兴趣的原因,就是启动快、包体积小,用了一段时间之后,发现 Solon 使用 GraalVM native iamge 打包有一些问题,我把问题发到 Solon 用户群里,作者告诉我 Solon 的原生编译还 beat 阶段,只…

内存管理、内存映射、mmap

内存管理 MMU:Memory Management Unit,内存管理单元,CPU中独立硬件,负责处理CPU的内存访问请求。虚拟地址到物理地址的转换(即虚拟内存管理)。 物理内存:真实存在的插在主板内存槽上的内存条&a…

C# 类库打包推送到nuget

步骤1:注册nuget 账号,可以使用outlook邮箱进行注册 步骤2:建立 apikey 名字自己起,Glob Pattern 填入“*” 步骤3:把程序打包,打包很简单右键vs2022 打包就好 但是注意*.csproj 文件修改,修改目的是为了…

python 操作CAD 二次开发 相关函数

import win32com.client as win32#输出dwg文件 from pyautocad import Autocad#输出dwg文件 import numpy as np#输出dwg文件 import pywin32 #输出dxf文件 import ezdxf #输出dxf文件 #打开CAD AutoCAD.Application.18 为 2010版本 #AutoCAD.Application.19 为 2014版本 #Au…

Python 使用pipreqs命令生成 `requirements.txt`报错

Python 使用pipreqs命令生成 requirements.txt报错:Fatal error in launcher: Unable to create process using ‘“E:\Anaconda\python.exe” “D:\Anaconda\Scripts\pipreqs.exe” ./ --encodingutf-8’: ??? 问题描述—Python 使用pipreqs命令生成 requireme…

MySQL_第09章_子查询

第09章_子查询 讲师:尚硅谷 - 宋红康(江湖人称:康师傅) 官网: http://www.atguigu.com 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从 MySQL 4.1 开始引入。 SQL 中子查询的使用大大…