精华内容
下载资源
问答
  • 怎么连接ftp服务器
    千次阅读
    2019-10-22 16:17:11

    1.引入pom文件

                    <!-- ftp -->
    		<dependency>
    			<groupId>commons-net</groupId>
    			<artifactId>commons-net</artifactId>
    			<version>3.6</version>
    		</dependency>

    2.配置application.properties文件

    ftp.client.username="ftp";
    ftp.client.password="****"
    ftp.client.host="127.0.0.0"
    ftp.client.port="22"

    3.配置ftp连接类FtpConnect

    import java.io.IOException;
    import java.net.SocketException;
    
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPReply;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.stereotype.Component;
    
    @Component
    public class FtpConnect {
    	private static Logger logger = LoggerFactory.getLogger(FtpConnect.class);
    	
    	// FTP 登录用户名
    	@Value("${ftp.client.username}")
    	private String userName;
    	// FTP 登录密码
    	@Value("${ftp.client.password}")
    	private String pwd;
    	// FTP 服务器地址IP地址
    	@Value("${ftp.client.host}")
    	private String host;
    	// FTP 端口
    	@Value("${ftp.client.port}")
    	private int port;
    
    	/**
    	 * 连接ftp
    	 * 
    	 * @return
    	 * @throws Exception
    	 */
    	public FTPClient getFTPClient() {
    		FTPClient ftpClient = new FTPClient();
    		try {
    			ftpClient = new FTPClient();
    			logger.info("地址:" + host + "-" + port);
    			ftpClient.connect(host, port);// 连接FTP服务器
    			logger.info("用户名:" + userName);
    			ftpClient.login(userName, pwd);// 登陆FTP服务器
    			if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
    				logger.info("未连接到FTP,用户名或密码错误。");
    				ftpClient.disconnect();
    			} else {
    				logger.info("FTP连接成功。");
    			}
                ftpClient.enterLocalPassiveMode();// 设置被动模式
                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//设置二进制传输
    		} catch (SocketException e) {
    			logger.error("连接ftp失败!");
    			logger.info("FTP的IP地址可能错误,请正确配置。");
    		} catch (IOException e) {
    			logger.error("连接ftp失败!");
    			logger.info("FTP的端口错误,请正确配置。");
    		}
    		return ftpClient;
    	}
    
    	/**
    	 * 关闭连接
    	 * 
    	 * @param ftpClient
    	 */
    	public void close(FTPClient ftpClient) {
    		try {
    			if (ftpClient != null) {
    				ftpClient.logout();
    				ftpClient.disconnect();
    			}
    		} catch (IOException e) {
    			logger.error("ftp连接关闭失败!");
    		}
    	}
    }
    

    4.创建ftp工具类 下载ftp服务器文件到本地FtpUtil

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    import org.apache.commons.net.ftp.FTPClient;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Component;
    
    @Component
    public class FtpUtil {
    
    	private static Logger logger = LoggerFactory.getLogger(FtpUtil.class);
    	public static final String DIRSPLIT = "/";
    
    	public static File downloadFile(FTPClient ftpClient, String targetPath, String filetype) throws Exception {
    
    		OutputStream outputStream = null;
    		try {
    			File directory = new File(".");
    			String path = null;
    			path = directory.getCanonicalPath();// 获取当前路径
    			logger.info("当前路径" + path);
    			path = path + DIRSPLIT + filetype;
    			logger.info("目录路径" + path);
    			File fileDire = new File(path);
    			if (!fileDire.exists() && !fileDire.isDirectory()) {
    				fileDire.mkdirs();
    			}
    			path = path + DIRSPLIT + targetPath.substring(targetPath.lastIndexOf("/") + 1);
    			logger.info("文件路径" + path);
    			File file = new File(path);
    			if (!file.exists()) {
    				if (!file.createNewFile()) {
    					logger.info("创建文件失败!");
    					return null;
    				}
    
    			}
    			outputStream = new FileOutputStream(file);
    			ftpClient.retrieveFile(targetPath, outputStream);
    			logger.info("Download file success. TargetPath: {}", targetPath);
    			return file;
    		} catch (Exception e) {
    			logger.error("Download file failure. TargetPath: {}", targetPath);
    			throw new Exception("Download File failure");
    		} finally {
    			if (outputStream != null) {
    				outputStream.close();
    			}
    		}
    	}
    
    	/**
    	 * 删除文件
    	 * 
    	 * @param pathname
    	 * @return
    	 * @throws IOException
    	 */
    	public static boolean deleteFile(File file) {
    		boolean result = false;
    		if (file.exists()) {
    			if (file.delete()) {
    				result = true;
    			}
    		}
    		return result;
    	}
    
    	/**
    	 * 处理文件名绝对路径
    	 * 
    	 * @param filePath
    	 * @param fileName
    	 * @return P:/temp/1.txt 或者 p:/temp/x
    	 */
    	public static String pasreFilePath(String filePath, String fileName) {
    		StringBuffer sb = new StringBuffer();
    		if (filePath.endsWith("/") || filePath.endsWith("\\")) {
    			sb.append(filePath).append(fileName);
    		} else {
    			sb.append(filePath.replaceAll("\\\\", "/")).append("/").append(fileName);
    		}
    		return sb.toString();
    	}
    
    	/**
    	 * 获取今天日期 - 数字格式
    	 * 
    	 * @return yyyyMMdd
    	 */
    	public static String getCurrentday() {
    		Calendar cal = Calendar.getInstance();
    		cal.add(Calendar.DATE, 0);
    		return new SimpleDateFormat("yyyyMMdd").format(cal.getTime());
    	}
    
    	/**
    	 * 获取昨天日期 - 数字格式
    	 * 
    	 * @return yyyyMMdd
    	 */
    	public static String getYesterday() {
    		Calendar cal = Calendar.getInstance();
    		cal.add(Calendar.DATE, -1);
    		return new SimpleDateFormat("yyyyMMdd").format(cal.getTime());
    	}
    }
    

    5.创建一个定时任务获取ftp服务器文件

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    
    @Component
    @EnableScheduling // 通过@EnableScheduling注解开启对计划任务的支持
    public class TaskSchedule {
    	private static Logger logger = LoggerFactory.getLogger(TaskSchedule.class);
    
    	@Autowired
    	private FtpConnect connect;
    	private long sleepTime = 60000;
    	private long total = 10;
    	private long num = 0;
    	public static final String UNDERLINE = "_";
    	public static final String preFileName = ".areq";
    	
    
    	@Scheduled(cron = "0 0 0/2 * * ?")
    	public String importSPserviceinfo() {
    		String readSPservicePathDay = "/**/"+ FtpUtil.getCurrentday() + "/";
    		logger.info("文件路径:" + readSPservicePathDay);
    		String info = "xxx";//文件关键字
    
    		// 获取远程目录下的文件到容器
    		List<File> files = sftpGet(info, readSPservicePathDay);
    		return "0000";
    	}
    
    	/**
    	 * 获取远程目录下的文件到容器
    	 */
    	public List<File> sftpGet(String filetype, String path) {
    		FTPClient ftpClient = null;
    		// 获取今天日期
    		String today = FtpUtil.getCurrentday();
    		FTPFile[] ftpFiles = null;
    		List<File> files = new ArrayList<File>();
    		String filetypeDate = filetype + UNDERLINE + today;
    		try {
    			ftpClient = connect.getFTPClient();
    			// 跳转到指定目录
    			ftpClient.changeWorkingDirectory(path);
    		} catch (Exception e1) {
    			logger.error("ftp连接异常");
    		}
    		try {
                            //ftp client告诉ftp server开通一个端口来传输数据
    			ftpClient.enterLocalPassiveMode();
    			logger.info("获得指定目录下的文件夹和文件信息");
    			ftpFiles = ftpClient.listFiles();
    			for (int i = 0; i < ftpFiles.length; i++) {
    				FTPFile ftpfile = ftpFiles[i];
    				String name = ftpfile.getName();
    				if (".".equals(name) || "..".equals(name) || ftpfile.isDirectory()) {
    					continue;
    				}
    				if (name.startsWith(filetypeDate) && name.endsWith(preFileName)) {
    					logger.info("获取到目录下文件名:" + name);
    					String sftpRemoteAbsolutePath = FtpUtil.pasreFilePath(path, name); // 远程服务器
    					File file = FtpUtil.downloadFile(ftpClient, sftpRemoteAbsolutePath, filetype);
    					files.add(file);
    				}
    			}
    			if (files.isEmpty()) {
    				throw new Exception();
    			}
    		} catch (Exception e) {
    			logger.error(" sftpGet  error");
    			logger.error("次数" + num);
    			if (num == total) {
    				num = 0;
    				throw new RuntimeException(e);
    			}
    			try {
    				num += 1;
    				Thread.sleep(sleepTime);
    				importSPserviceinfo();
    			} catch (InterruptedException e1) {
    				logger.error("获取文件失败");
    				Thread.currentThread().interrupt();
    			}
    		} finally {
    			connect.close(ftpClient);
    		}
    		return files;
    	}
    }

     

    更多相关内容
  • python连接FTP服务器

    千次阅读 2022-03-22 23:36:58
    学习python连接FTP服务器

      python中ftplib模块支持ftp操作,主要使用FTP类。本文使用ftp操作进行连接FTP服务器、获取当前目录文件清单、上传文件等操作。
      参考文献1的示例中,在创建FTP实例时指定FTP服务器地址,此时FTP端口默认使用的21端口。由于之前创建的FTP服务器,端口改成了21001,无法在FTP类中指定端口,本文创建FTP类实例后,调用connect函数指定服务器和端口,并连接FTP服务器。
      FTP服务器连接成功后,调用login函数,指定用户名和密码,登录服务器。
      登录后,默认是在根目录下,可以调用dir函数显示当前目录下的文件清单,包括文件和文件夹,不过此时会将中文显示为乱码,如下图所示:
    在这里插入图片描述
      根据参考文献3,设置FTP对象实例的编码方式,即可正常显示中文,此时程序代码及运行结果如下所示:

    	import ftplib
    	
    	host='192.168.11.50'
    	f=ftplib.FTP()
    	f.encoding = 'GB18030'
    	f.connect(host,21001)
    	f.login('ftpuser','XXXXXXXXXXX')       
    	
    	print("FTP服务器已经成功登录")
    	f.dir()
    	print('当前工作目录:',f.pwd())
    	
    	f.quit()
    	print("FTP服务器已断开")
    

    在这里插入图片描述
      目前学习的python上传文件的方式和C#调用FluentFTP上传文件不太一样,FluentFTP直接指定本地文件路径和上传文件路径即可,但是用python,首先先调用FTP类的cwd函数切换到要上传到的FTP服务器文件夹,然后调用文件操作函数open打开要上传的文件,最后调用FTP类的storbinary函数上传文件。
    程序代码、执行结果如下所示:

    	import ftplib
    	
    	host='192.168.11.50'
    	f=ftplib.FTP()
    	f.encoding = 'GB18030'
    	f.connect(host,21001)
    	f.login('ftpuser','XXXXXXXXXXX')       
    	
    	print("FTP服务器已经成功登录")
    	f.dir()
    	print('当前工作目录:',f.pwd())
    	f.cwd("音乐")
    	
    	upload_file="/home/hp/文档/音乐/再度重相逢.ape"
    	ff=open(upload_file,'rb')
    	print(f.storbinary("STOR 再度重相逢.ape",ff))
    	
    	f.quit()
    	print("FTP服务器已断开")
    

    在这里插入图片描述
    在这里插入图片描述

    参考文献
    [1]Python从菜鸟到高手
    [2]https://docs.python.org/3/library/ftplib.html#ftplib.FTP
    [3]https://blog.csdn.net/weixin_33701564/article/details/91918434

    展开全文
  • macOS连接ftp服务器

    千次阅读 2022-05-28 12:31:19
    FTP(File Transfer ...本文介绍macOS系统如何连接ftp服务器。 1.下载FileZilla FileZilla下载链接:https://filezilla-project.org/download.php?type=client,下载后安装 2.打开FileZilla,点击文件,站点管理器 3

    FTP(File Transfer Protocol)文件传输协议,是客户端和服务端之间进行文件传输的协议,它使用TCP协议实现。使用FTP服务,必须先登录,FileZilla是ftp登录软件,借助它我们可以方便地完成文件上传和下载。本文介绍macOS系统如何连接ftp服务器。

    1.下载FileZilla

    FileZilla下载链接:https://filezilla-project.org/download.php?type=client,下载后安装

    2.打开FileZilla,点击文件,站点管理器
    请添加图片描述
    3.点击新站点,填入远程服务器IP地址,端口可以不填,使用默认的端口请添加图片描述
    4.点击连接按钮,输入用户名和密码,连接建立成功后,可以显示本地目录和服务器文件目录
    请添加图片描述
    5.如果要向服务器上传文件,直接拖动文件到服务器目录就可以了。反之,下载服务器文件,也可以直接拖动到本地目录。

    展开全文
  • windows连接FTP服务器

    千次阅读 2021-06-09 13:19:53
    1、直接打开我的电脑 2、在我的电脑地址栏中输入 ftp://服务器ip地址 3、然后输入ftp的用户名和密码,点击d

    1、直接打开我的电脑

    2、在我的电脑地址栏中输入   ftp://服务器ip地址

    3、然后输入ftp的用户名和密码,点击登录即可

     

    展开全文
  • java连接ftp服务器

    千次阅读 2020-09-11 14:03:27
    使用Java连接Ftp并且实现文件的上传下载 1.使用maven工程的话需要引入Maven的pom <!--连接ftp使用--> <dependency> <groupId>commons-net</groupId> <artifactId>commons-...
  • Java——通过Java代码连接ftp服务器

    千次阅读 2021-06-04 08:55:53
    import org.apache.commons.net.ftp.FTPReply; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype....
  • java连接FTP服务器

    千次阅读 2019-06-03 00:05:57
    这一期,我们来学习一下如何用Java连接FTP服务器。在工程项目中,我们往往需要连接FTP服务器。当我们有此需求时,可以从两个方面考虑。第一,根据FTP协议自己写出一套程序,这是一种思路,当然这是一件很费时又耗...
  • 命令行连接FTP服务器

    万次阅读 多人点赞 2018-07-24 14:31:32
     输入 open ip地址 端口,进入ftp服务器,如open 172.16.3.77 2121。如下图: 输入Windows下的用户名,然后输入密码(注意:密码是不显示的,输入用户名密码不能时间太长,否则连接断掉)。 查看ftp服务器中...
  • Xshell连接FTP服务器

    千次阅读 2019-10-27 22:55:52
    运行一下python代码以启动ftp服务器 from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer from pyftpdlib.authorizers import DummyAuthorizer authorizer = DummyAuthorizer() ...
  • linux下常用FTP命令 1 连接ftp服务器

    千次阅读 2019-04-29 15:13:27
    linux下常用FTP命令 1 连接ftp服务器
  • java实现连接FTP服务器,实现文件的上传和下载 最近项目需要使用FTP服务器,来进行文件的上传和下载!本文主要介绍连接FTP服务器,进行文件的上传和下载,至于如何搭建FTP服务器,网上有很多教程,大家可以自行百度...
  • 如果使用FileZilla默认设置连接ftp服务器的话可能会报以下错误: 错误:无法建立数据连接:ECONNREFUSED - Connection refused by server 错误:连接超时 错误:读取目录列表失败 解决的办法是把传输模式改为主动 ...
  • 使用XFTP软件进行连接FTP服务器

    千次阅读 2019-12-06 11:51:39
    二、创建FTP服务器连接 三、填写FTP服务器基本信息 1.填写FTP主机IP,协议一般默认为FTP 2.端口20、21 3.如果服务器支持匿名登录的话可勾选直接登录 4.不支持匿名登录,则填写FTP账号密码登录(不同账号可分配不同...
  • golang连接FTP服务器并下载

    千次阅读 2020-05-18 15:57:36
    最近因为要用最一个简易网盘,主要功能是对接企业已有的ftp服务器和smb服务器。这篇博客主要是讲golang对接ftp服务器 go get github.com/dutchcoders/goftp  使用的是一个荷兰开发者作为主导的包,当时主要是...
  • 【Python】连接FTP服务器

    千次阅读 2019-06-21 19:12:31
    使用python登录到ftp服务器: #!/usr/local/bin/python3 #coding=utf-8 import ftplib host="xxx.xxx.xxx.xxx" #ip或域名 username="xxx" password="xxx" ftpServer=ftplib.FTP(host) ftpServer.encoding = "utf-8...
  • c++连接FTP服务器(上传、下载)

    千次阅读 2019-05-14 17:46:19
    void OnConnect() { //新建对话 m_pInetSession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS); try { //新建连接对象 CString m_strServer="服务器地址"; CS...
  • 连接FTP服务器问题1. IE 浏览器访问FTP , a) 地址栏输入ftp地址。输入用户名:密码: 2. 谷歌浏览器可以正常访问,没有资源管理器视图3. Windows 资源管理器访问(其实就是ie访问)4. Java 使用org.apache....
  • 利用cmd连接ftp服务器上传下载文件

    万次阅读 2016-11-01 08:56:11
    3.此时要求输入账号密码的,如下截图:(ftp服务器是我在本地搭建的,偷懒下,哈哈,不过这里要注意下,ftp服务器要以管理员身份运行,不然没有上传权限的) 4.这时可以输入dir命令查看,当前目录 5.还可以用cd命令来进入...
  • linux下常用FTP命令 1. 连接ftp服务器

    千次阅读 2016-01-11 15:04:38
    1. 连接ftp服务器 格式:ftp [hostname| ip-address] a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。 2. 下载文件 下载文件通常用get和...
  • 描述:Dos窗口通过ftp 192.168.xxx.xxx可以连接ftp服务器,但IE浏览器无法通过ftp:\\192.168.xxx.xxx连接ftp服务器 方法: ftp支持主动和被动两种连接模式,默认为主动模式;通过ftp:\\ 192.168.xxx.xxx连接ftp...
  • ftp连接服务器被拒绝原因

    千次阅读 2021-08-07 08:03:03
    ftp连接服务器被拒绝原因 内容精选换一换Windows Server 2012 R2操作系统弹性云服务器,本地使用远程桌面连接功能连接服务器并启用redirected drive功能时,云服务器出现蓝屏。远程桌面连接启用了redirected drive...
  • FTPClient连接FTP服务器

    千次阅读 2017-10-25 16:03:22
    最近项目新需求,需要从服务器上下载文件,...对于ftp连接,其实还是遇到了很多问题的, 代码问题不大, 因为基本上就是通过host,port,username,password直接连接即可,(下面要说的主要是在java代码中的操作以及输
  • 手机链接ftp服务器地址

    千次阅读 2021-08-13 08:56:16
    手机链接ftp服务器地址 内容精选换一换通过公网连接云手机实例时,弹性公网IP绑定在服务器上,因此需要先建立SSH隧道,即ADB方式(公网)包括两个步骤:建立SSH隧道;通过ADB连接云手机。关于SSH隧道和ADB的介绍请参见...
  • 使用批处理命令连接FTP服务器

    万次阅读 2020-03-15 19:37:20
    以下我就通过ftp命令下载服务器目录下“code”中的所有文件,命令如下。 ftp 192.168.0.2 admin admin cd code mget * 倘若每次都需要这样操作的时候,我只需要将操作的内容写成脚本。 例如:up.txt open ...
  • ftp连接显示被服务器被拒绝

    千次阅读 2021-08-07 08:01:29
    ftp连接显示被服务器被拒绝 内容精选换一换FTP/SFTP连接适用于从线下文件服务器或ECS服务器上迁移文件到OBS或数据库。当前仅支持Linux操作系统的FTP 服务器连接FTP或SFTP服务器时,他们的连接参数相同,如表1所示...
  • ipad ftp服务器 iPhone/iPad访问FTP服务器设置步骤2013-02-27 15:35:39 脚本之家有时候出门在外需要用到电脑中的文件,但是却没有携带电脑或者U盘,那么该怎么办呢?其实在IOS系统上,一些实用的应用软件有很强大的...
  • 计算机网络——FTP网络服务器

    千次阅读 2022-04-17 01:33:54
    学习安装、使用FTP服务器软件和FTP客户端软件,掌握基本的FTP传输数据的控制方式,能对FTP协议数据包抓取并进行分析。 实验环境: 使用Windows操作系统;Internet连接 FTP服务器软件 Xlight FTP客户端软件 ...
  • 一、首先设置ftp服务器: 我的电脑右键——管理——internet信息服务——网站 如图: 网站右键——添加Ftp站点——填写信息 如图: 下一步 如图: 下一步 如图: 完成——在网站列表中选中刚建立的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 406,586
精华内容 162,634
关键字:

怎么连接ftp服务器

友情链接: chap9.rar