最近项目中需要到Ftp文件上传,选择了Commons net。Commons net包中的ftp工具类能够帮助我们轻松实现Ftp方式的文件上传/下载。其中最重要的一个类就是FTPClient类,这个提供了许多FTP操作相关的
方法,比如链接,登录,上传,下载,和注销。
FTP 操作的过程一般为连接服务器,登录,进行文件上传/下载,文件(目录)的添加删除修改等操作。平常用的比较多的是文件的上传和下载。
下面是一些基本的上传操作(将Commons net的jar包引入即可使用):
public class FtpUtil {
public static void main(String[] args) {
FTPClient ftpClient = new FTPClient();
try {
//连接指定服务器,默认端口为21
ftpClient.connect("127.0.0.1");
System.out.println("connect to server");
//获取响应字符串(FTP服务器上可设置)
String replyString = ftpClient.getReplyString();
System.out.println("replyString: " + replyString);
//获取响应码用于验证是否连接成功
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
System.out.println("");
System.exit(1);
}
//设置链接编码,windows主机UTF-8会乱码,需要使用GBK或gb2312编码
ftpClient.setControlEncoding("GBK");
//登录服务器
boolean login = ftpClient.login("luojing", "luojing");
if (login) {
System.out.println("登录成功!");
} else {
System.out.println("登录失败!");
}
//获取所有文件和文件夹的名字
FTPFile[] files = ftpClient.listFiles();
for(FTPFile file : files){
if(file.isDirectory()){
System.out.println(file.getName() + " 是文件夹");
}
if(file.isFile()){
System.out.println(file.getName() + " 是文件");
}
}
//生成InputStream用于上传本地文件
InputStream in = new FileInputStream("e:\\1.txt");
//上传文件
ftpClient.storeFile("dest.txt",in);
in.close();
//注销登录
boolean logout = ftpClient.logout();
if (logout) {
System.out.println("注销成功!");
} else {
System.out.println("注销失败!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//关闭链接需要放在finally语句块中
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
此外,FTPClient类中也提供了一些文件/文件夹操作的方法。通过commos net提供的方法,可以方便的实现断点传输等功能。我还可以同个retrieveFileStream方法来获取远程服务器中指定文件的一个输入流来供我们手动的进行读操作,也可以使用appendFileStream方法来获取要上传到远程服务器中文件对应的输出流对象,然后我们就可以手动的从本地文件中读取数据然后写入到远程服务中,比如我们想知道上传的进度。总的来说,Commons net提供的方法还是非常好使,非常方便的。一些其他的功能就需要在使用的时候去看API手册了。
可能是环境影响,发现到了公司之后学习效率比在学校高了很多额,继续加油!
分享到:
相关推荐
基于 Apache Commons Net 实现javaFTP上传.pdf
org.apache.commons.net.ftp.FTPClient FTP工具类,实现上传、下载、压缩到输出流下载等功能
实现FTP文件上传下载必备jar包commons-net.rar,本人亲测,绝对可用。实现实现FTP文件上传下载必备的jar包
在Android端实现ftp登陆、登出、获取文件列表、文件(夹)上传下载、创建文件夹等操作。
NULL 博文链接:https://sosuny.iteye.com/blog/888884
使用Apache commons net组件实现ftp上传与下载功能
Commons Net 实现FTP上传下载等常用操作。 FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件...
java实现ftp上传jar包,里边包括edtftpj.jar、commons-net-1.4.1.jar、jakarta-oro-2.0.8.jar
ant实现ftp上传需要的jar包,包括jakarta-oro-2.0.8.jar,commons-net-1.4.1.jar,已测试可以使用。
里面包含了,Commons-fileupload和smartupload两种上传文件的代码实例。
用java实现ftp文件上传。使用commons-net-1.4.1.zip。java网络编程的工具包。
apache commons-net-3.5 实现 FTP 上传文件的神器,拿走不谢! 主要涉及上传文件的jar,希望能帮到你。
使用apache commons-net包实现文件ftp上传
本项目使用org.apache.commons.net.ftp.FTPClient实现文件上传到ftp服务器,解决不能上传中文文件的问题。
android 上的ftp服务器例子,通过ApacheFtpServer实现,依赖以下jar包: commons-...太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
主要介绍了JAVA技术实现上传下载文件到FTP服务器(完整),本文使用 Apache Jakarta Commons Net(commons-net-3.3.jar) 基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作,需要的朋友可以参考下
通过commons-net-3.7.jar实现的 FTP下载上传等功能
今天公司,做项目的时候突然客户需要,在页面实现上传文件,并且还得支持断点续传的功能,郁闷啊,只得花时间去弄了,一般现在网上说的都是用FTP的形式做的,可是客户不搞,花了大半天的时间才弄出来,就发上来,让...
包开发,能实现ftp断点上传、下载、创建目录、切换目录等功能。 说明:需要安装ftp服务器如server-u,filezila等。直接导出的myeclipse java 工程,导入既可以。 环境:myeclipse8.5+jdk1.7+tomcat 6
JAVA连接FTP服务器,并上传/下载文件的,使用commons-net包实现ftp服务器的访问,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等..相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar