java使用ftp案例

读取ftp图片
//图片所在位置
String picUrl = "./paperpic";
logger.info(picUrl);
//图片名称
String picName = "paper_001.Jpg";
response.reset();
OutputStream outputStream = response.getOutputStream();
//OutputStream outputStream = new FileOutputStream("e://paper_001.jpg");

FTPClient ftpClient = new FTPClient();
//连接ftp
ftpClient.connect("192.168.1.50", 21);
//登陆ftp
ftpClient.login("ftpuser", "abc123");
ftpClient.setBufferSize(1024);
// 设置文件类型(二进制)
ftpClient.changeWorkingDirectory(picUrl);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.retrieveFile(picName, outputStream);

outputStream.flush();  
outputStream.close();
ftpClient.disconnect();
向FTP服务器上传文件
/**
 * Description: 向FTP服务器上传文件
 * @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(String url, int port, String username,
		String password, String path, String filename, InputStream input) {
	boolean success = false;
	FTPClient ftp = new FTPClient();
	try {
		int reply;
		ftp.connect(url, port);// 连接FTP服务器
		// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
		ftp.login(username, password);// 登录

		reply = ftp.getReplyCode();
		if (!FTPReply.isPositiveCompletion(reply)) {
			ftp.disconnect();
			return success;
		}
		ftp.setBufferSize(1024);
		boolean flag = ftp.changeWorkingDirectory(path);
		
		if (!flag) {
			ftp.makeDirectory(path);
			ftp.changeWorkingDirectory(path);
		}
		
		ftp.enterLocalPassiveMode();
		ftp.setFileType(FTPClient.BINARY_FILE_TYPE);

		/*FTPFile[] files = ftp.listFiles("./");
		for (int i = 0; i < files.length; i++) {
			if (files[i].isFile()) {
				System.out.println(files[i].getName());
			} else {
				System.out.println(files[i].getName());
			}
		}*/

		ftp.storeFile(filename, input);

		input.close();
		ftp.logout();
		success = true;
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		if (ftp.isConnected()) {
			try {
				ftp.disconnect();
			} catch (IOException ioe) {
			}
		}
	}
	return success;
}
遍历FTP服务器上的文件
/**
 * Description: 遍历FTP服务器上的文件
 * @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 listFtpFile(String url, int port, String username,
		String password, String path, String filename, InputStream input) {
	boolean success = false;
	FTPClient ftp = new FTPClient();
	try {
		int reply;
		ftp.connect(url, port);// 连接FTP服务器
		// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
		ftp.login(username, password);// 登录

		reply = ftp.getReplyCode();
		if (!FTPReply.isPositiveCompletion(reply)) {
			ftp.disconnect();
			return success;
		}
		ftp.setBufferSize(1024);
		boolean flag = ftp.changeWorkingDirectory(path);
		
		if (!flag) {
			ftp.makeDirectory(path);
			ftp.changeWorkingDirectory(path);
		}
		
		ftp.enterLocalPassiveMode();
		ftp.setFileType(FTPClient.BINARY_FILE_TYPE);

		FTPFile[] files = ftp.listFiles("./");
		for (int i = 0; i < files.length; i++) {
			if (files[i].isFile()) {
				System.out.println(files[i].getName());
			} else {
				System.out.println(files[i].getName());
			}
		}

		//ftp.storeFile(filename, input);

		input.close();
		ftp.logout();
		success = true;
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		if (ftp.isConnected()) {
			try {
				ftp.disconnect();
			} catch (IOException ioe) {
			}
		}
	}
	return success;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值