ftp上传文件、删除文件、下载文件的操作
FavFTPUtil.Java
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | packagecom.favccxx.favsoft.util;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importorg.apache.commons.net.ftp.FTPClient;importorg.apache.commons.net.ftp.FTPFile;importorg.apache.commons.net.ftp.FTPReply;publicclassFavFTPUtil {        /**     * 上传文件(可供Action/Controller层使用)     * @param hostname FTP服务器地址     * @param port   FTP服务器端口号     * @param username   FTP登录帐号     * @param password   FTP登录密码     * @param pathname   FTP服务器保存目录     * @param fileName   上传到FTP服务器后的文件名称     * @param inputStream 输入文件流     * @return     */    publicstaticbooleanuploadFile(String hostname, intport, String username, String password, String pathname, String fileName, InputStream inputStream){        booleanflag = false;        FTPClient ftpClient = newFTPClient();        ftpClient.setControlEncoding("UTF-8");        try{            //连接FTP服务器            ftpClient.connect(hostname, port);            //登录FTP服务器            ftpClient.login(username, password);            //是否成功登录FTP服务器            intreplyCode = ftpClient.getReplyCode();            if(!FTPReply.isPositiveCompletion(replyCode)){                returnflag;            }                        ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);            ftpClient.makeDirectory(pathname);            ftpClient.changeWorkingDirectory(pathname);            ftpClient.storeFile(fileName, inputStream);            inputStream.close();            ftpClient.logout();            flag = true;        } catch(Exception e) {            e.printStackTrace();        } finally{            if(ftpClient.isConnected()){                try{                    ftpClient.disconnect();                } catch(IOException e) {                    e.printStackTrace();                }            }        }        returnflag;    }            /**     * 上传文件(可对文件进行重命名)     * @param hostname FTP服务器地址     * @param port   FTP服务器端口号     * @param username   FTP登录帐号     * @param password   FTP登录密码     * @param pathname   FTP服务器保存目录     * @param filename   上传到FTP服务器后的文件名称     * @param originfilename 待上传文件的名称(绝对地址)     * @return     */    publicstaticbooleanuploadFileFromProduction(String hostname, intport, String username, String password, String pathname, String filename, String originfilename){        booleanflag = false;        try{            InputStream inputStream = newFileInputStream(newFile(originfilename));            flag = uploadFile(hostname, port, username, password, pathname, filename, inputStream);         } catch(Exception e) {            e.printStackTrace();        }        returnflag;    }        /**     * 上传文件(不可以进行文件的重命名操作)     * @param hostname FTP服务器地址     * @param port   FTP服务器端口号     * @param username   FTP登录帐号     * @param password   FTP登录密码     * @param pathname   FTP服务器保存目录     * @param originfilename 待上传文件的名称(绝对地址)     * @return     */    publicstaticbooleanuploadFileFromProduction(String hostname, intport, String username, String password, String pathname, String originfilename){        booleanflag = false;        try{            String fileName = newFile(originfilename).getName();            InputStream inputStream = newFileInputStream(newFile(originfilename));            flag = uploadFile(hostname, port, username, password, pathname, fileName, inputStream);         } catch(Exception e) {            e.printStackTrace();        }        returnflag;    }            /**     * 删除文件     * @param hostname FTP服务器地址     * @param port   FTP服务器端口号     * @param username   FTP登录帐号     * @param password   FTP登录密码     * @param pathname   FTP服务器保存目录     * @param filename   要删除的文件名称     * @return     */    publicstaticbooleandeleteFile(String hostname, intport, String username, String password, String pathname, String filename){        booleanflag = false;        FTPClient ftpClient = newFTPClient();        try{            //连接FTP服务器            ftpClient.connect(hostname, port);            //登录FTP服务器            ftpClient.login(username, password);            //验证FTP服务器是否登录成功            intreplyCode = ftpClient.getReplyCode();            if(!FTPReply.isPositiveCompletion(replyCode)){                returnflag;            }            //切换FTP目录            ftpClient.changeWorkingDirectory(pathname);            ftpClient.dele(filename);            ftpClient.logout();            flag = true;        } catch(Exception e) {            e.printStackTrace();        } finally{            if(ftpClient.isConnected()){                try{                    ftpClient.logout();                } catch(IOException e) {                                }            }        }        returnflag;    }        /**     * 下载文件     * @param hostname FTP服务器地址     * @param port   FTP服务器端口号     * @param username   FTP登录帐号     * @param password   FTP登录密码     * @param pathname   FTP服务器文件目录     * @param filename   文件名称     * @param localpath 下载后的文件路径     * @return     */    publicstaticbooleandownloadFile(String hostname, intport, String username, String password, String pathname, String filename, String localpath){        booleanflag = false;        FTPClient ftpClient = newFTPClient();        try{            //连接FTP服务器            ftpClient.connect(hostname, port);            //登录FTP服务器            ftpClient.login(username, password);            //验证FTP服务器是否登录成功            intreplyCode = ftpClient.getReplyCode();            if(!FTPReply.isPositiveCompletion(replyCode)){                returnflag;            }            //切换FTP目录            ftpClient.changeWorkingDirectory(pathname);            FTPFile[] ftpFiles = ftpClient.listFiles();            for(FTPFile file : ftpFiles){                if(filename.equalsIgnoreCase(file.getName())){                    File localFile = newFile(localpath + "/"+ file.getName());                    OutputStream os = newFileOutputStream(localFile);                    ftpClient.retrieveFile(file.getName(), os);                    os.close();                }            }            ftpClient.logout();            flag = true;        } catch(Exception e) {            e.printStackTrace();        } finally{            if(ftpClient.isConnected()){                try{                    ftpClient.logout();                } catch(IOException e) {                                }            }        }        returnflag;    }} | 
FavFTPUtilTest.java
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | packagecom.favccxx.favsoft.util;importjunit.framework.TestCase;publicclassFavFTPTest extendsTestCase {        publicvoidtestFavFTPUtil(){        String hostname = "127.0.0.1";        intport = 21;        String username = "business";        String password = "business";        String pathname = "business/ebook";         String filename = "big.rar";         String originfilename = "C:\\Users\\Downloads\\Downloads.rar";        FavFTPUtil.uploadFileFromProduction(hostname, port, username, password, pathname, filename, originfilename);//      String localpath = "D:/";        //      FavFTPUtil.downloadFile(hostname, port, username, password, pathname, filename, localpath);    }} | 
ftp上传文件、删除文件、下载文件的操作的更多相关文章
- thinkphp对文件的上传,删除,下载操作
		工作需要,整理一下最近对php的学习经验,希望能对自己有帮助或者能帮助那些需要帮助的人. thinkphp对文件的操作,相对来说比较简单,因为tp封装好了一个上传类Upload.class.php 废 ... 
- 解决winscp中普通用户无法上传、删除、移动文件
		上一篇博客中提到了winscp这个软件,这个软件可以利用sftp协议对linux服务器就行连接,然后方便我们对文件进行操作,但是如果是利用普通用户进行登陆的话,在对文件进行相关操作的时候会出现一些pe ... 
- angularJs 多文件动态上传(删除其中一个文件的时候,要么file没被删除,要么删除了之后,点击事件失效)
		<div cacModule.controller('CacScriptEditCtrl', CacScriptEditCtrl); CacScriptEditCtrl.$inject = [' ... 
- SecureCRT上传、下载文件 使用rz【上传】& sz【下载】命令
		首先安装:apt-get install lrzsz SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能.比ftp命令方便多了,而且服务器不用再开FTP服务了.rz,sz是便是L ... 
- 批处理向FTP上传指定属性的文件 批处理增量备份的例子
		使用windows批处理向FTP上传具有指定属性的文件,类似增量备份功能. 对一个目录里的几个文件自动上传FTP时只上传有归档属性的文件,然后FTP上传成功后自动清除(本机)刚上传文件的归档属性. 类 ... 
- 让thinkphp 支持ftp上传到远程,ftp删除
		让thinkphp真正的支持FTP上传.删除. 原创by default7#zbphp.com,如需转载请保留作者信息. /** * This is not a free software, All ... 
- ftp上传或下载文件工具类
		FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ... 
- Java ftp 上传文件和下载文件
		今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ... 
- python实现支持目录FTP上传下载文件的方法
		#!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(objec ... 
- C#实现多文件上传,写到文件夹中,获取文件信息以及下载文件和删除文件
		前台:.js //上传附件 function uploadAttachment() { if ($("#Tipbind").attr('checked')) { var ip = ... 
随机推荐
- 任务49:Identity MVC:Model前端验证
			任务49:Identity MVC:Model前端验证 前端验证使用的是jquery的validate的组件 _ValidationScriptsPartial.cshtml 在我们的layout里面 ... 
- 【WIP】客户端JavaScript Web Object
			创建: 2017/10/11 更新: 2017/10/14 标题加上[WIP],增加[TODO] 更新: 2018/01/22 更改标题 [客户端JavaScript Web Object, UR ... 
- python 字符串操作二 内建函数
			一.查看字符串的内建函数 >>> dir(str) ['__add__', '__class__', '__contains__', '__delattr__', '__dir__' ... 
- poj 3294 Life Forms【SA+二分】
			先加入未出现字符间隔把n个串连起来,注意如果串开的char这个间隔字符不能溢出,把这个接起来的串跑SA,二分答案k,判断的时候把连续一段he>=k的分成一组,然后看着一段是否包含了>n/2 ... 
- (六)SpringBoot整合Swagger2框架
			一:什么是Swagger Swagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务. 二:添加Swagger2依赖 <dependency> ... 
- Selenium | 基础入门
			在maven项目搭建环境: <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifact ... 
- Magento 缓存机制简析
			在知道缓存机制前,首先需要知道,Magento的路由机制,这边就不做赘述了,百度一大堆. 下面一个简单的缓存生效流程: A:首先在页面开始时,Magento在app\code\core\Mage\Co ... 
- 看Facebook是如何优化React Native性能
			原文出处: facebook 译文出处:@Siva海浪高 该文章翻译自Facebook官方博客,传送门 React Native 允许我们运用 React 和 Relay 提供的声明式的编程模型, ... 
- JS进阶-闭包的几种常见形式
			作用域链: //作用域链 var a = 1; function test() { var b =2; return a; } alert(test());//弹出1: alert(b);//不能获取 ... 
- 学习Python的day1
			自己以前从来没有写博客的想法,但是学Python,里面的老师也说了,写博客可以加深自己的记忆,也能回顾内容.还能给别人参考.挺值的.2017-09-16 一. Python介绍 python的创始人为 ... 
