今天在做java开发FTP文件上传时,遇到了一些问题。现在项目完成了,有时间总结一下。我用的第三方jar是:etdftpj-1.4.5.jar。
问题一:java在获取FTP Client时,指定路径在Windows和Linux下的表示方式不同。
Windows FTP Server:"/folder";
Linux FTP Server:"\folder"。
问题二:FTP访问方式
FTP是仅基于TCP的服务,它使用两个端口,一个命令端口,一个数据端口。通常情况下,命令端口号21,数据端口号20.但是由于FTP的访问方式不同,数据端口号不一定是20。
1、主动模式
第一步:客户端的命令端口与FTP服务器端的命令端口21建立连接,并发送命令"PORT 1027";
第二步:FTP服务器的命令端口给客户端的命令端口回一个"ACK";
第三步:FTP服务器发起一个从它自己的数据端口20向客户端先前指定的数据端口20的连接;
第四步:客户端给FTP服务器回一个"ACK"。
2、被动模式(PASV)
第一步:客户端的命令端口与FTP服务器端的命令端口21建立连接,并发送命令"PASV";
第二步:FTP服务器返回一个命令"PORT 2024",告诉客户端用哪个端口侦听数据连接;
第三步:客户端初始化一个从自己的数据端口到FTP服务器指定的数据端口的连接;
第四步:FTP服务器给客户端回一个"ACK"。
总结:
主动FTP:
命令连接:客户端 >1023端口 -> 服务器 21端口
数据连接:客户端 >1023端口 <- 服务器 20端口
被动FTP:
命令连接:客户端 >1023端口 -> 服务器 21端口
数据连接:客户端 >1023端口 -> 服务器 >1023端口
下面是主动与被动FTP优缺点的简要总结:
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。
问题三:实现在FTP服务器上移动文件
rename(fileName, ../path/fileName);
- 大小: 2.6 KB
- 大小: 2.9 KB
分享到:
相关推荐
在Java编程中,FTP(File Transfer Protocol)是一个用于在计算机之间传输文件的标准协议。通过FTP,我们可以实现远程服务器上的文件上传、下载以及管理等操作。本教程将详细讲解如何使用Java来实现FTP文件的下载...
### Java实现FTP服务器的关键知识点 在探讨如何使用Java实现FTP(File Transfer Protocol)服务器之前,我们首先需要理解FTP的基本概念及其工作原理。FTP是一种用于在网络上进行文件传输的标准协议,它支持上传...
本项目提供了一套完整的Java实现FTP操作的代码示例,包括上传、下载、删除服务器上的指定文件以及断点续传功能。以下是对这些功能的详细解释: 1. **FTP连接与登录**: 在进行任何FTP操作之前,首先需要建立一个...
Java操作FTP服务器,连接FTP,上传文件,删除文件,下载文件
Java操作FTP(File Transfer Protocol)是Java编程中的一项重要技能,尤其在开发涉及文件上传、下载、删除等网络操作的应用时。以下将详细介绍如何使用Java进行FTP的各种操作,并结合具体的代码示例进行讲解。 首先...
本文将详细讨论如何使用Java连接FTP(File Transfer Protocol)服务器,进行文件的上传、下载、删除以及复制等操作。 首先,Java通过`java.net`和`javax.net`包提供了FTP客户端的功能。主要依赖于`java.net....
9. **异常处理**:在处理FTP操作时,应该捕获并处理可能抛出的FTPException和其他相关异常,确保程序的健壮性。 10. **配置设置**:FTPClient允许你设置一些配置参数,如超时时间、数据连接模式等,以适应不同的...
7. **日志和审计**:为了追踪服务器活动并解决潜在问题,FTP服务器应记录所有客户端交互,包括登录尝试、文件操作和其他命令。 在开发Java FTP Server时,可能还会用到一些开源库,例如Apache Commons Net提供了FTP...
本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`,该类提供了一系列功能来与FTP服务器交互,包括连接到服务器、上传文件、下载文件、获取文件列表、删除文件和目录以及关闭连接等操作。 #### 二、`...
在进行FTP操作时,确保遵循安全最佳实践,例如使用SSL/TLS加密连接,避免明文传输敏感信息,及时断开无用连接,并限制FTP用户的权限。此外,如果可能,应考虑使用SFTP(SSH文件传输协议),它比FTP更安全。 总结,...
Java解析FTP服务器文本文件是指使用Java语言连接FTP服务器,上传、下载、递归目录遍历等基本操作的集合。在这个过程中,我们需要引入相关的jar包,例如cpdetector.jar、jchardet-1.0.jar、antlr.jar、commons-...
在编写Java FTP程序时,需要注意错误处理和异常处理,确保在网络不稳定或服务器响应异常时能够优雅地处理问题。同时,为了提高性能和安全性,可能还需要考虑使用多线程、SSL/TLS加密以及限制并发连接数等策略。 总...
为了方便开发者操作FTP服务器,Java提供了一些内置的库,如`java.net.FTPSClient`和`org.apache.commons.net.ftp.FTPClient`。在这个场景中,我们有一个工具类,它包含了FTP的上传、下载和删除功能,这对于任何需要...
Java FTP客户端源代码是用于通过Java编程语言与FTP(文件传输协议)服务器进行交互的程序。FTP是一种在互联网上常用的标准文件传输协议,允许用户上传、下载和管理远程服务器上的文件。Java提供了一系列的API,如`...
java操作FTP工具类:实现基本断点上传下载、实现上传下载进度汇报、实现中文目录创建及中文文件创建,添加对于中文的支持
标题 "java 读取Ftp指定位置的文件解析并入库" 涉及到的是使用Java编程语言通过FTP(File Transfer Protocol)协议从远程服务器上下载文件,然后对下载的文件进行解析,并将解析得到的数据存储到数据库中。...
以上就是关于"java实现ftp上传jar包"的相关知识点,涵盖了FTP协议、相关库的使用、JAR文件的处理以及基本的Java FTP操作。在实际项目中,你可能还需要考虑其他因素,如连接超时、重试策略、文件权限管理等。
在Java编程环境中,读取FTP(File Transfer Protocol)服务器上的文件是一项常见的任务,尤其是在Web服务器和Linux系统环境下。FTP提供了一种可靠的方式来传输文件,使得应用程序可以远程访问和操作存储在FTP服务器...
通过Java实现FTP批量下载文件以及解压的功能,可以极大地提高工作效率,特别是在处理大量数据时。以下是一份详细的步骤介绍: 首先,我们需要引入Java的FTP客户端库,如Apache Commons Net库。这个库提供了丰富的...