FtpUtil 工具类
package xxxx;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream; 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; public class FtpUtil { private final static String host = "192.168.xxx.xxxx"; private final static String basePath = "/auth"; private final static String username = ""; private final static String password = ""; public static boolean uploadFile(String localPath) throws IOException {
File file = new File(localPath);
FileInputStream fileInputStream = null;
boolean result = false;
FTPClient ftp = new FTPClient();
try {
//----------------------
//尝试添加超时时间 解决阻塞问题
ftp.setDefaultTimeout(60 * 1000);
ftp.setConnectTimeout(60 * 1000);
ftp.setDataTimeout(60 * 1000);
//----------------------
fileInputStream = new FileInputStream(file);
String fileName = file.getName();
int reply;
ftp.connect(host);// 连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
//230代表登录成功
System.out.println(reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(basePath);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//ftp.setBufferSize(1024);
ftp.setControlEncoding("GBK");
//设置被动模式
ftp.enterLocalPassiveMode();
//设置上传文件的类型为二进制类型
//上传文件 result = ftp.storeFile(new String(fileName.getBytes("GBK"), "iso-8859-1"), fileInputStream);
fileInputStream.close();
ftp.logout();
// result = true;
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) { }
}
}
return result; } public static boolean uploadFile(File file) throws IOException {
FileInputStream fileInputStream = null;
boolean result = false;
FTPClient ftp = new FTPClient();
try {
//----------------------
//尝试添加超时时间 解决阻塞问题
ftp.setDefaultTimeout(60 * 1000);
ftp.setConnectTimeout(60 * 1000);
ftp.setDataTimeout(60 * 1000);
//----------------------
fileInputStream = new FileInputStream(file);
String fileName = file.getName();
int reply;
ftp.connect(host);// 连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
//230代表登录成功
System.out.println(reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(basePath);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//ftp.setBufferSize(1024);
ftp.setControlEncoding("GBK");
//设置被动模式
ftp.enterLocalPassiveMode();
//设置上传文件的类型为二进制类型
//上传文件 result = ftp.storeFile(new String(fileName.getBytes("GBK"), "iso-8859-1"), fileInputStream);
fileInputStream.close();
ftp.logout();
// result = true;
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) { }
}
}
return result; } public static boolean downloadFile(String remotePath, String fileName, String localPath) {
boolean result = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(host);
// 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
ftp.login(username, password);// 登录
reply = ftp.getReplyCode();
System.out.println(reply);
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录
ftp.enterLocalPassiveMode();
FTPFile[] fs = ftp.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
File localFile = new File(localPath + "/" + ff.getName()); OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(), is);
is.close();
}
} ftp.logout();
result = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return result;
} /*public static void main(String[] args) {
String localpath = "D:/ftp测试.txt";
System.out.println(uploadFile(localpath)); System.out.println(downloadFile("/auth", "ftp测试.txt", "D:/log"));
}*/
}
使用的jar包
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>2.0</version>
</dependency>
FtpUtil 工具类的更多相关文章
- FTPUtil工具类
package com.xxx.common.util; import java.io.File; import java.io.FileOutputStream; import java.io.IO ...
- FTP工具类开发
正所谓工欲善其事必先利其器,熟悉了下一套流程,以此铭记. 1.FTP服务搭建 由于本人使用wondiow系统,所以针对window的童鞋们可以查看.至于windowX这里配置类似,所以不要纠结于win ...
- FTP上传-封装工具类
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)
前言 最近在项目中需要和ftp服务器进行交互,在网上找了一下关于ftp上传下载的工具类,大致有两种. 第一种是单例模式的类. 第二种是另外定义一个Service,直接通过Service来实现ftp的上 ...
- Java Utils工具类大全(转)
源码和jar见:https://github.com/evil0ps/utils #Java Utils --- 封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起 ...
- Java操作FTP工具类(实例详解)
这里使用Apache的FTP jar 包 没有使用Java自带的FTPjar包 工具类 package com.zit.ftp; import java.io.File; import java.i ...
- ftp上传下载工具类
package com.taotao.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNo ...
- Java Utils工具类大全
源码和jar见:https://github.com/evil0ps/utils #Java Utils --- 封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起 ...
随机推荐
- 个人或者企业怎么进行app开发?开发一款APP应用大概须要多少钱?
App开发.是指专注于手机应用软件开发与服务. App是application的缩写,通常专指手机上的应用软件,或称手机client.另外眼下有非常多在线app开发平台.当然移动互联网时代是全民的移动 ...
- iOS之基于FreeStreamer的简单音乐播放器(模仿QQ音乐)
代码地址如下:http://www.demodashi.com/demo/11944.html 天道酬勤 前言 作为一名iOS开发者,每当使用APP的时候,总难免会情不自禁的去想想,这个怎么做的?该怎 ...
- iOS学习笔记-自己动手写RESideMenu
代码地址如下:http://www.demodashi.com/demo/11683.html 很多app都实现了类似RESideMenu的效果,RESideMenu是Github上面一个stars数 ...
- nnlog-yaml
from nnlog import Logger# log=Logger(file_name='my.log',level='debug',# when='S',backCount=5,interva ...
- 更改 easyUI 的皮肤样式
我的版本是:jquery-easyui-1.3.2.根据官方提供的皮肤样式,——在theme 里面: 只需要在引入的 页面中 link样式的地址改变即可: <link rel="sty ...
- mongoDB 数据导出之mongoexport的用法
http://tuozixuan.iteye.com/blog/1321994 实战代码: #mongo导出 mongoexport --port 33001 -d bsdf_soe -c ...
- node.js 学习01
PHP开发技术栈(LAMP) Linux Apache MySql PHPnode.js 全栈开发技术栈(MEAN): MongoDB Express Angular Node.js 现阶 ...
- rac_安装软件时报版本号过高问题
原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- 在连接mysql数据库时出错:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone
这个错误是时区导致的,所以需要在配置连接url后面加上时区: url=jdbc:mysql://localhost:3309/test?serverTimezone=UTC 其中UTC是统一标准世界时 ...
- sql 转 markdown
https://github.com/2liang/AutoBuildDocFromDB SQL脚本生成数据字典 http://www.jianshu.com/p/f491d0d3c503 这两个脚本 ...