FtpUtils--文件服务器相关

这篇博客探讨了FTPUtils在文件服务器中的应用,提到了与FastDFS的对比,并分享了在工作环境中FTP的使用经验,同时提及了ExcelUtils的相关内容。
摘要由CSDN通过智能技术生成

ftp服务器。当时学的是FastDFS ,上班用的ftp,不知道以后会不会用到


public class FtpUtils{
	protected static Logger logger = LoggerFactory.getLogger(FtpUtils.class);
	
	//1.获得链接
	public static FTPClient getConnectionFTP(String hostName ,int port, String 	username, String password ) throws Exception{
	//创建FTP客户端--连接FTP服务器--登录ftp
	FTPClient ftp = new FTPClient();
	ftp.connect(hostName,port);
	//下面三行代码必须要,而且不能改变编码格式,否则不能正确下载中文文件
	String LOCAL_CHARSET = "GBK";
	if( FTPReply.isPositiveCompletion( ftp.sendCommand("OPTS UTF8","OFF") ) ){
		//开启服务器对UTF-8的支持,如果服务器支持就用UTF-8编码
		LOCAL_CHARSET = LOCAL_CHARSET ;
	 }
	ftp.setControlEncoding(LOCAL_CHARSET );
	FTPClientConfig conf = new FTPClientConfig(FTPClientConfig .SYST_UNIX);
	conf.setServerLanguageCode("zh");
	ftp.configure(conf);//应用配置
		if( ! ftp.login(username, password) ){
		logger.info(String.format("FTP 用户名:%s  密码:%s",username,password));
		ftp.logout();
		throw new Exception("登录FTP服务器失败");
		}
		if( !FTPReply.isPositiveCompletion( ftp.getReplyCode() ) ){
			ftp.disconnect();
			throw new Exception("FTP服务器响应失败");
		}
		logger.info("FTPUtil getConnectionFTP method id =>登录服务器成功!");
		returnftp;
	}//1号方法尾

	//2:关闭连接
	public static void closeFTP(FTPClient ftp)throws Exception{
		if(ftp == null) return ;
		if(ftp.isConnected()){
				ftp.disconnect();
				logger.info("FTPUtil closeFTP method id =>ftp已经关闭");
		}
	}
	//3:上传文件-ftp方式
	public static void uploadFile(FTPClient ftp, String path,String fileName,InputStream inputStream) throws Exception{
		try{
		logger.info("----------------ftpPath =>>"+path);
		ftp.changeWorkingDirectory(path);//转移到指定FTP服务器目录
		//将文件上传到指定目录
		ftp.setFileType(FTP.BINARY_FILE_TYPE);
		ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE);
		ftp.enterLocalPassiveMode();
		//如果缺少该句 传输txt正常 但图片和其他格式的文件传输出现乱码
		boolean ret = ftp.storeFile(new String(fileName.getBytes("GBK"),"ISO-8859-1"),“inputStream”);
		if(! ret){ throw new Exception("文件上传失败");}
		//表示上传成功
		logger.info("FTPUtil uploadFile method id =>上传成功。。。。。。");
		}catch(Exception e){
		e.printStackTrace();
		logger.info("FTPUtil uploadFile method id =>上传失败!"+e.toString());
		throw e;
		}finally{
			//关闭输入流
			inputStream.close();
			//退出ftp
			ftp.logout();
		}
	}
//4:多文件上传-多输入流,重载方法
		public static void uploadFile(FTPClient ftp, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值