Java操作ftp,上传,下载,删除操作
使用java commons net包中的api可以方便操作ftp操作。
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply;public class FtpCtrl {public static void main(String[] args) throws Exception {String url = "ip";int port = 21;String username = "username";String password = "password";String path = "/";String filename = "ftp.test.tmp";FileInputStream fis = new FileInputStream("/home/iamsuperman/ftp.txt");uploadFile(url, port, username, password, path, filename, fis);}/*** @param ip* FTP服务器IP地址* @param port* FTP服务器端口* @param username* FTP服务器登录名* @param password* FTP服务器密码* @param remotePath* 远程文件路径* @param fileName* 待删除的文件名* @return* @see [类、类#方法、类#成员]*/public static boolean deleteFtpFile(String ip, int port, String username, String password, String remotePath,String fileName) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;// 连接FTP服务器if (port > -1) {ftp.connect(ip, port);} else {ftp.connect(ip);}// 登录 ftp.login(username, password);reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}// 转移到FTP服务器目录 ftp.changeWorkingDirectory(remotePath);success = ftp.deleteFile(remotePath + "/" + fileName);ftp.logout();} catch (IOException e) {e.printStackTrace();success = false;} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}return success;}/*** Description: 从FTP服务器下载文件* * @param ip* FTP服务器hostname* @param port* FTP服务器端口* @param username* FTP登录账号* @param password* FTP登录密码* @param remotePath* FTP服务器上的相对路径* @param fileName* 要下载的文件名* @param localPath* 下载后保存到本地的路径* @return*/public static boolean downloadFile(String ip, int port, String username, String password, String remotePath,String fileName, String localPath) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;// 连接FTP服务器if (port > -1) {ftp.connect(ip, port);} else {ftp.connect(ip);}ftp.login(username, password);// 登录reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录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();success = true;} catch (IOException e) {e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}return success;}/*** Description: 向FTP服务器上传文件* * @param ip* FTP服务器hostname* @param port* FTP服务器端口,如果默认端口请写-1* @param username* FTP登录账号* @param password* FTP登录密码* @param path* FTP服务器保存目录* @param filename* 上传到FTP服务器上的文件名* @param input* 输入流* @return 成功返回true,否则返回false*/public static boolean uploadFile(String ip, int port, String username, String password, String path,String filename, InputStream input) {boolean success = false;FTPClient ftp = new FTPClient();try {int reply;// 连接FTP服务器if (port > -1) {ftp.connect(ip, port);} else {ftp.connect(ip);}// 登录FTP ftp.login(username, password);reply = ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {ftp.disconnect();return success;}ftp.changeWorkingDirectory(path);ftp.storeFile(filename, input);input.close();ftp.logout();success = true;} catch (IOException e) {success = false;e.printStackTrace();} finally {if (ftp.isConnected()) {try {ftp.disconnect();} catch (IOException e) {e.printStackTrace();}}}return success;}} ==============================================================================获取连接时候:ftp.enterLocalPassiveMode();这句话特别重要。
转载于:https://www.cnblogs.com/swbzmx/p/5604431.html
Java操作ftp,上传,下载,删除操作相关推荐
- 阿里云oss 使用, 基于Nginx 配置云服务器+oss的内网访问 , 及使用Java SDK 完成上传,下载,删除,查询文件列表操作
一.同阿里产品,云服务器和存储对象oss-配置内网访问 阿里存储对象oss 地址: https://oss.console.aliyun.com/overview 配置须知 通过Nginx 进行网络转 ...
- ftp: connect: 没有到主机的路由_Qt之FTP上传/下载文件操作
一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&q ...
- Qt之FTP上传/下载文件操作
一个简单的Ftp客户端文件上传/下载操作示例. 上传文件 QNetworkAccessManager manager; QUrl url; /* 设置通讯协议 */ url.setScheme(&qu ...
- ftp上传文件服务器报550错误_java ftp下载文件,Java 实现ftp上传下载文件
最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...
- java操作文件_java操作FTP,实现文件上传下载删除操作
上传文件到FTP服务器: /** * Description: 向FTP服务器上传文件 * @param url FTP服务器hostname * @param port FTP服务器端口,如果默认端 ...
- FastDFS上传下载删除操作
1.第一步 添加fastdfs-client.properties配置文件并修改 ## fastdfs-client.propertiesfastdfs.connect_timeout_in_seco ...
- Java 实现Ftp上传下载文件
最近项目中需要实现将文件先存放到ftp上,需要的时候再从ftp上下载,做的过程中碰到了问题,发现中文文件名的无法上传到ftp上,ftp上的中文文件名的文件下载不下来,几番折腾,终于搞定了,记录一下备忘 ...
- ftp. java. jdk_java实现ftp上传下载(jdk1.7以下)
java实现ftp上传下载(jdk1.7以下)完整代码,复制可用 FTP实现代码: package com.util; import java.io.File; import java.io.File ...
- java实现的FTP上传下载客户端
org.apache.commons.net.ftp.*中的FTPClient类实现的FTP上传下载功能: 需导入Apache的commos-net的jar包,若导入的是1.4版本的包,则FTPFil ...
最新文章
- 云平台屡次停摆,核心系统事故频发?您的运维系统该升级了!
- 数据结构——图:极大小连通子图、图的存储结构、图的遍历
- 谈谈java的并发容器、Queue
- 如何设置WebLogic生成的日志文件的权限?
- MCMC 和 Gibbs采样
- Android MotionEvent中getX()、getRawX()和getTop()的区别
- JSP九大内置对象(转载)
- AS3.0面向对象的写法,类和实例
- 《推荐系统笔记(九))》DNN的BP算法(内含详细数学推导)
- linux 远程桌面 命令,linux 命令 远程连接
- 自家公司关于git commit 的规范
- 软考中级软件设计师知识点总结
- 如何安装并且运行阿帕奇服务器 for windows
- android 编写计时器,Android用5种方式实现自定义计时器, 哪种才是你的菜?
- C++11中的原子操作(atomic operation)和自旋锁
- Altium Designer(AD)软件使用记录05-PCB叠层设计
- 新百家姓出来了,看你排第几位?
- 著者四角号码查询_著者姓名汉语拼音与四角号码数字混编书次号的应用
- 解决 git 文件夹不显示绿色图标和红色图标的问题
- ArcGIS学习之tif文件打开一片空白的解决办法——创建金字塔
热门文章
- 回归模型评估_评估回归模型的方法
- Common Used Excel Formulas
- 李嘉诚拥有8500亿资产, 是真正的世界首富,为何要藏富?
- C# 7.1、7.2特性追踪
- fedora 用安装 DVD 建立本地 yum 源
- Windows Mobile的一些网站和资源(由网友搜集 我整理了一下)
- 文件被后台程序占用无法删除_win10重装后系统占用50G?只要做好这2步,运行比win7还快...
- mysql处理时间_MYSQL时间处理 (转)
- Imbalanced data – Finding Waldo
- 2019春季学期第四周作业