java上传、下载、删除ftp文件
一共三个类,一个工具类Ftputil.,一个实体类Kmconfig。一个测试类Test
下载地址:http://download.csdn.net/detail/myfmyfmyfmyf/6697107
Ftputil类---------------
- package ftpDemo;
- import java.io.DataOutputStream;
- import java.io.InputStream;
- import java.io.OutputStream;
- import sun.net.TelnetInputStream;
- import sun.net.TelnetOutputStream;
- import sun.net.ftp.FtpClient;
- public class ftpUtil {
- // 上传文件至FTP通用方法
- public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){
- try {
- String ftpHost = kmConfig.getFtpHost();
- int port = kmConfig.getFtpPort();
- String userName = kmConfig.getFtpUser();
- String passWord = kmConfig.getFtpPassword();
- String path = kmConfig.getFtpPath();
- FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
- ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
- ftpClient.binary();
- ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
- TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName为上传的文件名
- DataOutputStream dataOut = new DataOutputStream(telnetOut);
- byte buffer[] = new byte[1024 * 1024];
- int count = 0;
- while ((count = is.read(buffer)) != -1) {
- dataOut.write(buffer, 0, count);
- }
- telnetOut.close();
- dataOut.close();
- ftpClient.closeServer();
- } catch (Exception e) {
- System.out.println("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");
- }
- }
- // 删除文件至FTP通用方法
- public static void deleteFileFtp(KmConfig kmConfig,String fileName){
- try {
- String ftpHost = kmConfig.getFtpHost();
- int port = kmConfig.getFtpPort();
- String userName = kmConfig.getFtpUser();
- String passWord = kmConfig.getFtpPassword();
- String path = kmConfig.getFtpPath();
- FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
- ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
- ftpClient.binary();
- ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
- try {
- ftpClient.sendServer("dele " + fileName + "\r\n");
- } catch (Exception e) {
- System.out.println("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");
- }
- ftpClient.closeServer();
- } catch (Exception e) {
- System.out.println("删除文件失败!");
- }
- }
- // 下载ftp文件
- public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
- try {
- String ftpHost = kmConfig.getFtpHost();
- int port = kmConfig.getFtpPort();
- String userName = kmConfig.getFtpUser();
- String passWord = kmConfig.getFtpPassword();
- String path = kmConfig.getFtpPath();
- FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
- ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
- ftpClient.binary();
- ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
- try {
- TelnetInputStream in = ftpClient.get(fileName);
- byte[] bytes = new byte[1024];
- int cnt=0;
- while ((cnt=in.read(bytes,0,bytes.length)) != -1) {
- outputStream.write(bytes, 0, cnt);
- }
- outputStream.close();
- in.close();
- } catch (Exception e) {
- ftpClient.closeServer();
- e.printStackTrace();
- }
- ftpClient.closeServer();
- } catch (Exception e) {
- System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");
- }
- }
- //在ftp服务器上穿件文件夹
- public boolean createDir(String path,FtpClient ftpClient) throws Exception{
- //进入到home文件夹下
- ftpClient.cd("/home");
- //创建远程文件夹
- //远程命令包括
- //USER PORT RETR ALLO DELE SITE XMKD CDUP FEAT<br>
- // PASS PASV STOR REST CWD STAT RMD XCUP OPTS<br>
- // ACCT TYPE APPE RNFR XCWD HELP XRMD STOU AUTH<br>
- // REIN STRU SMNT RNTO LIST NOOP PWD SIZE PBSZ<br>
- // QUIT MODE SYST ABOR NLST MKD XPWD MDTM PROT<br>
- // 在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/n<br>
- // ftpclient.sendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令<br>
- // ftpclient.readServerResponse一定要在sendServer后调用<br>
- // nameList("/test")获取指目录下的文件列表<br>
- // XMKD建立目录,当目录存在的情况下再次创建目录时报错<br>
- // XRMD删除目录<br>
- // DELE删除文件<br>
- //通过远程命令 穿件一个files文件夹
- ftpClient.sendServer("MKD "+ path + "\r\n");
- //这个方法必须在 这两个方法中间调用 否则 命令不管用
- ftpClient.binary();
- ftpClient.readServerResponse();
- return false;
- }
- /**
- * 检查文件夹是否存在
- * @param dir
- * @param ftpClient
- * @return
- */
- public boolean isDirExist(String dir, FtpClient ftpClient) {
- try {
- ftpClient.cd(dir);
- } catch (Exception e) {
- return false;
- }
- return true;
- }
- }
Kmconfig类---------------
- package ftpDemo;
- public class KmConfig {
- //主机ip
- private String FtpHost = "";
- //端口号
- private int FtpPort;
- //ftp用户名
- private String FtpUser = "";
- //ftp密码
- private String FtpPassword = "";
- //ftp中的目录
- private String FtpPath = "";
- public String getFtpHost() {
- return FtpHost;
- }
- public void setFtpHost(String ftpHost) {
- FtpHost = ftpHost;
- }
- public int getFtpPort() {
- return FtpPort;
- }
- public void setFtpPort(int ftpPort) {
- FtpPort = ftpPort;
- }
- public String getFtpUser() {
- return FtpUser;
- }
- public void setFtpUser(String ftpUser) {
- FtpUser = ftpUser;
- }
- public String getFtpPassword() {
- return FtpPassword;
- }
- public void setFtpPassword(String ftpPassword) {
- FtpPassword = ftpPassword;
- }
- public String getFtpPath() {
- return FtpPath;
- }
- public void setFtpPath(String ftpPath) {
- FtpPath = ftpPath;
- }
- }
Test类---------------
- package ftpDemo;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.InputStream;
- public class Test {
- public static void main(String[] args) {
- //设置ftp
- KmConfig km = new KmConfig();
- km.setFtpHost("172.20.32.48");
- km.setFtpPort(21);
- km.setFtpUser("test");
- km.setFtpPassword("111111");
- km.setFtpPath("KM");
- //上传到ftp
- ftpUtil util=new ftpUtil();
- File file = new File("F:/文章2.jpg");
- InputStream in;
- try {
- in = new FileInputStream(file);
- util.upLoadFileFtp(km, in, "更改后的名字.jpg");
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //页面访问: ftp://账户:密码@ip地址:端口号/文件夹目录/
- // ftp://test:111111@222.22.22.11:21/image/
- }
- }
java上传、下载、删除ftp文件的更多相关文章
- Android连接socket服务器上传下载多个文件
android连接socket服务器上传下载多个文件1.socket服务端SocketServer.java public class SocketServer { ;// 端口号,必须与客户端一致 ...
- Python 一键上传下载&一键提交文件到SVN入基线工具
一键上传下载&一键提交文件到SVN入基线工具 by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用说明 1 注: 根据我司项目规则订制的一套工具,集成以下功能,源码 ...
- java FTP 上传下载删除文件
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- java 通过sftp服务器上传下载删除文件
最近做了一个sftp服务器文件下载的功能,mark一下: 首先是一个SftpClientUtil 类,封装了对sftp服务器文件上传.下载.删除的方法 import java.io.File; imp ...
- java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)
1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...
- Struts2 文件上传,下载,删除
本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用Fi ...
- SpringMVC ajax技术无刷新文件上传下载删除示例
参考 Spring MVC中上传文件实例 SpringMVC结合ajaxfileupload.js实现ajax无刷新文件上传 Spring MVC 文件上传下载 (FileOperateUtil.ja ...
- 使用C#WebClient类访问(上传/下载/删除/列出文件目录)由IIS搭建的http文件服务器
前言 为什么要写这边博文呢?其实,就是使用C#WebClient类访问由IIS搭建的http文件服务器的问题花了我足足两天的时间,因此,有必要写下自己所学到的,同时,也能让广大的博友学习学习一下. 本 ...
- Java 上传下载的
1.上传的步骤: a.导入SmartUpload.jar b.创建一个上传的类的对象 c.初始化 d.上传至服务器 e.保存 注意:表单提交时需要指定enctype=&quo ...
- 使用C#WebClient类访问(上传/下载/删除/列出文件目录)
在使用WebClient类之前,必须先引用System.Net命名空间,文件下载.上传与删除的都是使用异步编程,也可以使用同步编程, 这里以异步编程为例: 1)文件下载: static void Ma ...
随机推荐
- 在OpenCV for Android 2.4.5中使用SURF(nonfree module)
http://blog.csdn.net/ruifdu/article/details/9120559 在OpenCV4Android中没有nonfree module,因此也就没有了SURF和SIF ...
- [原创]内网渗透专用SSH连接工具sshcmd/sshshell/ssh密码破解以及Kali开启SSH
目录 1.Kali开启SSH 2.SSH连接工具优缺点 3.渗透专用SSH连接工具 4.ssh执行cmd源码 5.批量SSH密码破解 6.相关工具下载 0x001 SSH配置 1.打开文件 etc/s ...
- android videoView 加载等待
final Handler handler = new Handler(); Runnable runnable = new Runnable() { public void run() { int ...
- 微信支付——基于laravel框架的php实现
现在经手的几乎每个项目都支持微信支付,简单记录下接入的大致流程. 1.首先商户等申请各种账号,微信支付商户号,APPID,API密钥,Appsecret 2.app端上传支付需要的各个字段 3.后台收 ...
- 如何实现序列化为json
因为需要观察对象的数据,所以寻找能自动描述对象中字段名和其值的描述类,咨询了不少人,都推荐使用json,但是json使用起来有一点额外的操作. 需要在文件中引用 using System.Web.Sc ...
- JTable运行的时候抛出NullPointerException的问题
在一个需要动态更新JTable的程序中,为了实现动态刷修数据.在主线程之外开了个新线程来进行算法的执行还有数值计算,然后最后调用 jTable.updateUi(); 的方法. 然后图形界面上是一点问 ...
- POJ - 2186 Popular Cows tarjain模板题
http://poj.org/problem?id=2186 首先求出所有的强连通分量,分好块.然后对于每一个强连通分量,都标记下他们的出度.那么只有出度是0 的块才有可能是答案,为什么呢?因为既然你 ...
- session是什么时候创建的
总结:session不是一打开网站就会立刻建立.它的建立需要基于下面两个条件中的任意一个: 1:在servlet中手动调用 HttpSession session = request.getSessi ...
- arcgis mdb 数据中的shp 如何合并一起
如上操作 一直往下就可以啦 选择数据源 就可以了,然后就可以load 其他数据啦 ,坐标系要一直
- 借助sass的Maps功能使得响应式代码更有条理
原文来自这里 本文综合了原文(by Jonathan Suh)以及笔者自己的理解. Introduction 众所周知,写代码与写维护性高的代码是两回事.而涉及到响应式,代码又特别容易变的杂乱.借助s ...