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.
		
		
		
		
			
				
					
					
						
							64 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							64 lines
						
					
					
						
							1.9 KiB
						
					
					
				package com.ynxbd.common.helper.common;
 | 
						|
 | 
						|
import lombok.AllArgsConstructor;
 | 
						|
import lombok.extern.slf4j.Slf4j;
 | 
						|
import org.apache.commons.io.IOUtils;
 | 
						|
import org.apache.commons.net.ftp.FTP;
 | 
						|
import org.apache.commons.net.ftp.FTPClient;
 | 
						|
import org.apache.commons.net.ftp.FTPFile;
 | 
						|
 | 
						|
import java.io.*;
 | 
						|
 | 
						|
/**
 | 
						|
 * @author 李进才
 | 
						|
 * @ClassName FtpHelper
 | 
						|
 * @Description description
 | 
						|
 * @date 2023/3/21 15:34
 | 
						|
 */
 | 
						|
@Slf4j
 | 
						|
@AllArgsConstructor
 | 
						|
public class FtpHelper {
 | 
						|
 | 
						|
    private final String server;
 | 
						|
    private final Integer port;
 | 
						|
    private final String user;
 | 
						|
    private final String pass;
 | 
						|
 | 
						|
 | 
						|
    public byte[] getFile(String path){
 | 
						|
        FTPClient ftpClient = new FTPClient();
 | 
						|
        ftpClient.setConnectTimeout(60*000); //连接超时为60秒
 | 
						|
        ftpClient.setControlEncoding("utf-8");
 | 
						|
        ftpClient.enterLocalPassiveMode();
 | 
						|
        try {
 | 
						|
            ftpClient.connect(server);
 | 
						|
            ftpClient.login(user, pass);
 | 
						|
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
 | 
						|
            log.info("[FTP]登陆成功");
 | 
						|
            FTPFile ftpFile = ftpClient.mlistFile(path);
 | 
						|
            if (ftpFile != null) {
 | 
						|
                log.info("[FTP]读取到文件:{}",ftpFile.getName());
 | 
						|
                InputStream inputStream = ftpClient.retrieveFileStream(path);
 | 
						|
                byte[] fileData = IOUtils.toByteArray(inputStream);
 | 
						|
                return fileData;
 | 
						|
            } else {
 | 
						|
                log.error("[FTP]读取共享文件失败 路径---{}",path);
 | 
						|
            }
 | 
						|
            ftpClient.logout();
 | 
						|
            ftpClient.disconnect();
 | 
						|
 | 
						|
        } catch (IOException ex) {
 | 
						|
            log.error("[FTP]ftp连接失败");
 | 
						|
            ex.printStackTrace();
 | 
						|
        } finally {
 | 
						|
            if (ftpClient.isConnected()) {
 | 
						|
                try {
 | 
						|
                    ftpClient.disconnect();
 | 
						|
                } catch (IOException ex) {
 | 
						|
                    ex.printStackTrace();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return null;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |