You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.6 KiB
94 lines
2.6 KiB
3 years ago
|
package com.eco.plugin.xx.jlyhsjtb.utils;
|
||
|
|
||
|
import com.fr.ftp.client.FTPClient;
|
||
|
import com.fr.ftp.client.FTPClientConfig;
|
||
|
import com.fr.ftp.client.FTPFile;
|
||
|
import com.fr.ftp.client.FTPReply;
|
||
|
|
||
|
import java.io.File;
|
||
|
import java.io.FileOutputStream;
|
||
|
import java.io.OutputStream;
|
||
|
|
||
|
public class FtpUtils {
|
||
|
/**
|
||
|
* 从linux下载ftp文件
|
||
|
* @param host
|
||
|
* @param port
|
||
|
* @param user
|
||
|
* @param password
|
||
|
* @param dir
|
||
|
* @param filename
|
||
|
* @return
|
||
|
*/
|
||
|
public static File downloadFromLinux(String host,int port,String user,String password,String dir,String filename) {
|
||
|
File templateFile = null;
|
||
|
FTPClient ftp=null;
|
||
|
try
|
||
|
{
|
||
|
//设置ftp连接
|
||
|
ftp=new FTPClient();
|
||
|
ftp.connect(host,port);
|
||
|
ftp.login(user, password);
|
||
|
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
|
||
|
|
||
|
//设置linux环境
|
||
|
FTPClientConfig conf = new FTPClientConfig( FTPClientConfig.SYST_UNIX);
|
||
|
ftp.configure(conf);
|
||
|
|
||
|
//判断是否连接成功
|
||
|
int reply = ftp.getReplyCode();
|
||
|
if (!FTPReply.isPositiveCompletion(reply))
|
||
|
{
|
||
|
ftp.disconnect();
|
||
|
FRUtils.FRLogError("ftp连接失败replyCode:"+reply);
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
//设置访问被动模式
|
||
|
ftp.setRemoteVerificationEnabled(false);
|
||
|
ftp.enterLocalPassiveMode();
|
||
|
|
||
|
//检索ftp目录下所有的文件,利用时间字符串进行过滤
|
||
|
boolean hasdir = ftp.changeWorkingDirectory(dir);
|
||
|
|
||
|
if(!hasdir){
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
FTPFile[]fs = ftp.listFiles();
|
||
|
for(FTPFile f:fs)
|
||
|
{
|
||
|
String ftpFilename =f.getName();
|
||
|
if(ftpFilename.equals(filename))
|
||
|
{
|
||
|
templateFile = File.createTempFile("test","txt");
|
||
|
OutputStream ios = new FileOutputStream(templateFile);
|
||
|
ftp.retrieveFile(f.getName(), ios);
|
||
|
ios.close();
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
FRUtils.FRLogError("ftp下载失败:"+e.getMessage());
|
||
|
}
|
||
|
finally
|
||
|
{
|
||
|
if(ftp != null){
|
||
|
try
|
||
|
{
|
||
|
ftp.disconnect();
|
||
|
} catch (Exception ioe)
|
||
|
{
|
||
|
FRUtils.FRLogError("释放ftp连接失败");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return templateFile;
|
||
|
}
|
||
|
|
||
|
}
|