一FTP简介:FTP是用于在网络上进行文件传输的一套标准协议,它工作在OSI模型的第七层,TCP模型的第四层(应用层),使用TCP传输而不是UDP,FTP是基于客户------服务器模型而设计的,在客户端与FTP服务器之间建立两个连接。
二:获取FTP服务器上的列表
package com.x;
import java.io.IOException;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class Ftp1 {
public static void main(String[] args) {
//FTP客户端对象
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect("192.168.254.197", 21);
ftpClient.login("root", "root");
//切换至工作目录
boolean isChange = ftpClient.changeWorkingDirectory("cuihua");
System.out.println("切换目录:" + isChange);
//日期格式转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//获取该目录下的所有文件
FTPFile[] files = ftpClient.listFiles();
for(FTPFile f : files) {
System.out.println("文件名称:" + f.getName());
//获取文件创建时间
Date creatDate = f.getTimestamp().getTime();
//日期格式化
String createDatestr = sdf.format(creatDate);
System.out.println("创建时间:" + createDatestr);
//文件大小
System.out.println("文件大小:" + f.getSize());
//上传用户
System.out.println("上传用户:" + f.getUser());
System.out.println();
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
//躲开链接
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
三上传至FTP服务器
JButton btnUpload = new JButton("上传至FTP服务器");
ImageIcon excelUploadIcon = new ImageIcon(MainFrame.class.getResource("/com/com/imgs/服务器.png"));
btnUpload.setIcon(excelUploadIcon);
btnUpload.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//获取列头
Vector<String> colNameVector = Utils.convertTo(cboType.getModel());
//获取数据
if (searchdataModel == null) {
searchdataModel = dataModel;
}
Vector<Vector<Object>> dataVector = searchdataModel.getDataVector();
//传入并调用
DataHandlerService dhs = new DataHandlerService();
boolean isUpload = dhs.uploadToFTP(colNameVector, dataVector);
if(isUpload) {
JOptionPane.showMessageDialog(null, "导出成功","系统提示",JOptionPane.INFORMATION_MESSAGE);
lblmessage.setToolTipText(String.format("已上传%d行数据", searchdataModel.getDataVector().size()));
}else {
JOptionPane.showMessageDialog(null, "导出失败","系统提示",JOptionPane.ERROR_MESSAGE);
}
}
});
四在FT服务器选择下载文件
public boolean downloadFileFromFTP (String excelFileName) {
FTPClient ftpclient = new FTPClient();
File uploadDir = new File("F:\\zuoye\\download");
if(!uploadDir.exists()) {
uploadDir.mkdir();
}
try(FileOutputStream out = new FileOutputStream("F:\\zuoye\\download\\"+ excelFileName)) {
ftpclient.connect("192.168.254.185",21);
boolean isLogin = ftpclient.login("admin", "admin");
System.out.println("登陆成功:" + isLogin);
ftpclient.setFileType(FTPClient.BINARY_FILE_TYPE);
boolean isretrieve = ftpclient.retrieveFile(excelFileName, out);
return isretrieve;
} catch (SocketException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}finally {
try {
ftpclient.disconnect();
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
}
版权归原作者 新手(cuihua) 所有, 如有侵权,请联系我们删除。