最新消息:关注【已取消】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

java FTP文件上传客户端编写教程

Javaweb 太平洋学习网 0浏览 评论

FTP是文件传输协议,一般用来对服务器上传或下载文件资源,使用非常的频繁,所以如何使用FTP上传下载功能是很必要的,虽然现在有更安全的SFTP传输协议,但FTP仍然是很普遍的。

在Java中,我们经常使用spring mvc上传文件,图片等资源,它是HTTP协议的,有时候可能要做一些自动上传文件到服务器的操作,这个时候我们可能会使用Java FTP客户端来向我们的FTP服务器自动上传文件,特别是在一些类似巴枪扫描,APP等移动设备中,经常会使用到ftp服务。

下面来开始学习如何使用Java来编写客户端向FTP服务器端上传txt文件吧!

步骤一:在pom.xml文件中加入"commons-net" jar包,里面包含了ftp相关的类,代码如下:

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

步骤二:Java实现FTP客户端文件上传功能,代码如下:

package demo;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;

import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FTPUploader {
	FTPClient ftp = null;
	
	//构造方法	
	public FTPUploader(String host, String user, String pwd) throws Exception{
		ftp = new FTPClient();
		ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
		int reply;
		//连接FTP
		ftp.connect(host);
		reply = ftp.getReplyCode();
		//上传完成则关闭FTP
		if (!FTPReply.isPositiveCompletion(reply)) {
			ftp.disconnect();
			throw new Exception("Exception in connecting to FTP Server");
		}
		//登录
		ftp.login(user, pwd);
		ftp.setFileType(FTP.BINARY_FILE_TYPE);
		ftp.enterLocalPassiveMode();
	}
	
	//FTP文件上传方法
	public void uploadFile(String localFileFullName, String fileName, String hostDir)
			throws Exception {
		try {
			InputStream input = new FileInputStream(new File(localFileFullName));
			this.ftp.storeFile(hostDir + fileName, input);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	//断开FTP连接
	public void disconnect(){
		if (this.ftp.isConnected()) {
			try {
				this.ftp.logout();
				this.ftp.disconnect();
			} catch (IOException f) {
				// do nothing as file is already saved to server
			}
		}
	}
	
	//测试FTP文件上传功能
	public static void main(String[] args) throws Exception {
		System.out.println("开始上传...");
		FTPUploader ftpUploader = new FTPUploader("192.168.1.117", "root", "root");
		//参数一:需要上传的文件完整路径
		//参数二:要存储的远程文件名称
		//参数三:服务器目录
		ftpUploader.uploadFile("D:/DT940/test.txt", "remote.txt", "/root/file/");
		ftpUploader.disconnect();
		System.out.println("上传完成!");
	}
}

注意:在使用java ftp客户端连接FTP服务器端之前,请提前搭建好FTP服务器端。

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/727.html
"文章很值,打赏犒劳作者一下"
微信号: Javaweb_engineer

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

与本文相关的文章

发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论