java使用ftpapi上传文件

1 篇文章 0 订阅

maven需要导入的jar包

<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>2.2</version>
<scope>compile</scope>
</dependency>


代码如下

package lilong;


import java.io.File;
import java.io.FileInputStream;


import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;




public class FtpClientTest {
private FTPClient ftp;


/**

* @param path
*            上传到ftp服务器哪个路径下
* @param addr
*            地址
* @param port
*            端口号
* @param username
*            用户名
* @param password
*            密码
* @return
* @throws Exception
*/
private boolean connect(String remotePath, String ftpaddr, int port, String username, String password)
throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
ftp.connect(ftpaddr, port);
ftp.login(username, password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(remotePath);
result = true;
return result;
}


/**

* @param file
*            上传的文件或文件夹
* @throws Exception
*/
private void upload(File file) throws Exception {
if (file.isDirectory()) {
//上传的是目录
ftp.makeDirectory(file.getName());
ftp.changeWorkingDirectory(file.getName());
String[] files = file.list();
for (int i = 0; i < files.length; i++) {
File file1 = new File(file.getPath() + "\\" + files[i]);
if (file1.isDirectory()) {
//上传的是目录
upload(file1);
ftp.changeToParentDirectory();
} else {
//上传的是目录
File file2 = new File(file.getPath() + "\\" + files[i]);
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}
} else {
//上传的是文件
File file2 = new File(file.getPath());
FileInputStream input = new FileInputStream(file2);
ftp.storeFile(file2.getName(), input);
input.close();
}
}


public static void main(String[] args) throws Exception {
FtpClientTest t = new FtpClientTest();
t.connect("/home/boco/ftp/", "127.0.0.1", 21, "XXX", "XXX");
File file = new File("D:\\localftp\\Y201602265500");
t.upload(file);
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值