JavaWeb使用ftp上传下载以及访问文件

主要就是把对ftp的访问封装成一个常用类就行了。

首先是要学会怎么Java怎么用,我是将其封装成我自己的一个工具包,这样下次使用的时候就可以直接拿出来用了。

package com.utils;

import java.io.InputStream;
/**
 * 
 * @author Panpan
 *
 */
public class FtpBean {
	private String ftpUrl;//ftp地址
	private int port;//端口号是21
	private String userName;//ftp用户名
	private String passWord;//ftp密码
	private String ftpPath;//ftp上可以访问的文件路径
	private String fileName;//文件名 
	private InputStream input;//输入流(用做上传文件或在ftp新建文件使用)
	private String localPath;//用于从ftp上下载文件存放的路径

	public FtpBean() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	
	public FtpBean(String ftpUrl, int port, String userName, String passWord, String ftpPath, String fileName,
			InputStream input, String localPath) {
		super();
		this.ftpUrl = ftpUrl;
		this.port = port;
		this.userName = userName;
		this.passWord = passWord;
		this.ftpPath = ftpPath;
		this.fileName = fileName;
		this.input = input;
		this.localPath = localPath;
	}

}
package com.utils;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.junit.Test;

public class FtpUtil {
	
	/**
	 * Description: 向FTP服务器上传文件
	 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建
	 * @param url FTP服务器hostname
	 * @param port FTP服务器端口
	 * @param username FTP登录账号
	 * @param password FTP登录密码
	 * @param path FTP服务器保存目录
	 * @param filename 上传到FTP服务器上的文件名
	 * @param input 输入流
	 * @return 成功返回true,否则返回false
	 */
	public static boolean uploadFile(FtpBean ftpBean) {
		boolean success = false;
		FTPClient ftp = new FTPClient();
		try {
			int reply;
			ftp.connect(ftpBean.getFtpUrl(), ftpBean.getPort());//连接FTP服务器
			//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
			ftp.login(ftpBean.getUserName(), ftpBean.getPassWord());//登录
			ftp.setFileType(FTP.BINARY_FILE_TYPE);  //设置文件类型为binary
			reply = ftp.getReplyCode();
			if (!FTPReply.isPositiveCompletion(reply)) {
				ftp.disconnect();
				return success;
			}
			ftp.changeWorkingDirectory(ftpBean.getFtpPath());
			//設置為被動模式
			//ftp.enterLocalPassiveMode();
			
			ftp.storeFile(ftpBean.getFileName(), ftpBean.getInput());			
			
			ftpBean.getInput().close();
			ftp.logout();
			success = true;
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (ftp.isConnected()) {
				try {
					ftp.disconnect();
				} catch (IOException ioe) {
				}
			}
		}
		return success;
	}

}

经验分享 程序员 微信小程序 职场和发展