Java ftp上传文件
1、ftp上传按照模式分为主动模式(FTP Port)和被动模式(FTP Passive);
2、本次采用被动模式上传
package com;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* @Description : ftp upload util.
* @Author : xu_teng_chao@163.com
* @CreateTime : 2019/12/18 4:02 下午
*/
public class FtpUtil {
private static final String ip = "192.168.1.10"; // ftp服务端ip
private static final int port = 8081; // ftp服务端port
private static final String username = "admin"; // ftp用户名
private static final String password = "admin"; // ftp密码
private static FTPClient ftpClient;
// 初始化客户端与服务端连接
static {
ftpClient = new FTPClient();
ftpClient.setControlEncoding("UTF-8");
try {
ftpClient.connect(ip, port);
ftpClient.login(username, password);
//设置为被动模式
ftpClient.enterLocalPassiveMode();
int replyCode = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(replyCode)) {
ftpClient.disconnect();
} else {
System.out.println("FTP server connected success.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* ftp上传文件
* fileAbPath: 要上传的文件绝对路径
* @return
*/
public static boolean uploadFile(String fileAbPath) {
boolean flag = false;
try {
File file = new File(fileAbPath);
FileInputStream inputStream = new FileInputStream(file);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
flag = ftpClient.storeFile(file.getName(), inputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
调用ftp上传文件FtpUtil.uploadFile(“要上传的文件路径”);