一共三个类,一个工具类Ftputil.,一个实体类Kmconfig。一个测试类Test

下载地址:http://download.csdn.net/detail/myfmyfmyfmyf/6697107

Ftputil类---------------

  1. package ftpDemo;
  2. import java.io.DataOutputStream;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import sun.net.TelnetInputStream;
  6. import sun.net.TelnetOutputStream;
  7. import sun.net.ftp.FtpClient;
  8. public class ftpUtil {
  9. // 上传文件至FTP通用方法
  10. public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){
  11. try {
  12. String ftpHost = kmConfig.getFtpHost();
  13. int port = kmConfig.getFtpPort();
  14. String userName = kmConfig.getFtpUser();
  15. String passWord = kmConfig.getFtpPassword();
  16. String path = kmConfig.getFtpPath();
  17. FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
  18. ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
  19. ftpClient.binary();
  20. ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
  21. TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName为上传的文件名
  22. DataOutputStream dataOut = new DataOutputStream(telnetOut);
  23. byte buffer[] = new byte[1024 * 1024];
  24. int count = 0;
  25. while ((count = is.read(buffer)) != -1) {
  26. dataOut.write(buffer, 0, count);
  27. }
  28. telnetOut.close();
  29. dataOut.close();
  30. ftpClient.closeServer();
  31. } catch (Exception e) {
  32. System.out.println("上传文件失败!请检查系统FTP设置,并确认FTP服务启动");
  33. }
  34. }
  35. // 删除文件至FTP通用方法
  36. public static void deleteFileFtp(KmConfig kmConfig,String fileName){
  37. try {
  38. String ftpHost = kmConfig.getFtpHost();
  39. int port = kmConfig.getFtpPort();
  40. String userName = kmConfig.getFtpUser();
  41. String passWord = kmConfig.getFtpPassword();
  42. String path = kmConfig.getFtpPath();
  43. FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
  44. ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
  45. ftpClient.binary();
  46. ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
  47. try {
  48. ftpClient.sendServer("dele " + fileName + "\r\n");
  49. } catch (Exception e) {
  50. System.out.println("删除文件失败!请检查系统FTP设置,并确认FTP服务启动");
  51. }
  52. ftpClient.closeServer();
  53. } catch (Exception e) {
  54. System.out.println("删除文件失败!");
  55. }
  56. }
  57. // 下载ftp文件
  58. public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
  59. try {
  60. String ftpHost = kmConfig.getFtpHost();
  61. int port = kmConfig.getFtpPort();
  62. String userName = kmConfig.getFtpUser();
  63. String passWord = kmConfig.getFtpPassword();
  64. String path = kmConfig.getFtpPath();
  65. FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型。
  66. ftpClient.login(userName, passWord);// userName、passWord分别为FTP服务器的登陆用户名和密码
  67. ftpClient.binary();
  68. ftpClient.cd(path);// path为FTP服务器上保存上传文件的路径。
  69. try {
  70. TelnetInputStream in = ftpClient.get(fileName);
  71. byte[] bytes = new byte[1024];
  72. int cnt=0;
  73. while ((cnt=in.read(bytes,0,bytes.length)) != -1) {
  74. outputStream.write(bytes, 0, cnt);
  75. }
  76. outputStream.close();
  77. in.close();
  78. } catch (Exception e) {
  79. ftpClient.closeServer();
  80. e.printStackTrace();
  81. }
  82. ftpClient.closeServer();
  83. } catch (Exception e) {
  84. System.out.println("下载文件失败!请检查系统FTP设置,并确认FTP服务启动");
  85. }
  86. }
  87. //在ftp服务器上穿件文件夹
  88. public boolean createDir(String path,FtpClient ftpClient) throws Exception{
  89. //进入到home文件夹下
  90. ftpClient.cd("/home");
  91. //创建远程文件夹
  92. //远程命令包括
  93. //USER    PORT    RETR    ALLO    DELE    SITE    XMKD    CDUP    FEAT<br>
  94. //          PASS    PASV    STOR    REST    CWD     STAT    RMD     XCUP    OPTS<br>
  95. //          ACCT    TYPE    APPE    RNFR    XCWD    HELP    XRMD    STOU    AUTH<br>
  96. //          REIN    STRU    SMNT    RNTO    LIST    NOOP    PWD     SIZE    PBSZ<br>
  97. //          QUIT    MODE    SYST    ABOR    NLST    MKD     XPWD    MDTM    PROT<br>
  98. //               在服务器上执行命令,如果用sendServer来执行远程命令(不能执行本地FTP命令)的话,所有FTP命令都要加上/r/n<br>
  99. //                    ftpclient.sendServer("XMKD /test/bb/r/n"); //执行服务器上的FTP命令<br>
  100. //                    ftpclient.readServerResponse一定要在sendServer后调用<br>
  101. //                    nameList("/test")获取指目录下的文件列表<br>
  102. //                    XMKD建立目录,当目录存在的情况下再次创建目录时报错<br>
  103. //                    XRMD删除目录<br>
  104. //                    DELE删除文件<br>
  105. //通过远程命令 穿件一个files文件夹
  106. ftpClient.sendServer("MKD "+ path + "\r\n");
  107. //这个方法必须在 这两个方法中间调用 否则 命令不管用
  108. ftpClient.binary();
  109. ftpClient.readServerResponse();
  110. return false;
  111. }
  112. /**
  113. * 检查文件夹是否存在
  114. * @param dir
  115. * @param ftpClient
  116. * @return
  117. */
  118. public boolean isDirExist(String dir, FtpClient ftpClient) {
  119. try {
  120. ftpClient.cd(dir);
  121. } catch (Exception e) {
  122. return false;
  123. }
  124. return true;
  125. }
  126. }

Kmconfig类---------------

  1. package ftpDemo;
  2. public class KmConfig {
  3. //主机ip
  4. private String FtpHost = "";
  5. //端口号
  6. private int FtpPort;
  7. //ftp用户名
  8. private String FtpUser = "";
  9. //ftp密码
  10. private String FtpPassword = "";
  11. //ftp中的目录
  12. private String FtpPath = "";
  13. public String getFtpHost() {
  14. return FtpHost;
  15. }
  16. public void setFtpHost(String ftpHost) {
  17. FtpHost = ftpHost;
  18. }
  19. public int getFtpPort() {
  20. return FtpPort;
  21. }
  22. public void setFtpPort(int ftpPort) {
  23. FtpPort = ftpPort;
  24. }
  25. public String getFtpUser() {
  26. return FtpUser;
  27. }
  28. public void setFtpUser(String ftpUser) {
  29. FtpUser = ftpUser;
  30. }
  31. public String getFtpPassword() {
  32. return FtpPassword;
  33. }
  34. public void setFtpPassword(String ftpPassword) {
  35. FtpPassword = ftpPassword;
  36. }
  37. public String getFtpPath() {
  38. return FtpPath;
  39. }
  40. public void setFtpPath(String ftpPath) {
  41. FtpPath = ftpPath;
  42. }
  43. }

Test类---------------

    1. package ftpDemo;
    2. import java.io.File;
    3. import java.io.FileInputStream;
    4. import java.io.FileNotFoundException;
    5. import java.io.InputStream;
    6. public class Test {
    7. public static void main(String[] args) {
    8. //设置ftp
    9. KmConfig km = new KmConfig();
    10. km.setFtpHost("172.20.32.48");
    11. km.setFtpPort(21);
    12. km.setFtpUser("test");
    13. km.setFtpPassword("111111");
    14. km.setFtpPath("KM");
    15. //上传到ftp
    16. ftpUtil util=new ftpUtil();
    17. File file = new File("F:/文章2.jpg");
    18. InputStream in;
    19. try {
    20. in = new FileInputStream(file);
    21. util.upLoadFileFtp(km, in, "更改后的名字.jpg");
    22. } catch (FileNotFoundException e) {
    23. // TODO Auto-generated catch block
    24. e.printStackTrace();
    25. }
    26. //页面访问: ftp://账户:密码@ip地址:端口号/文件夹目录/
    27. //  ftp://test:111111@222.22.22.11:21/image/
    28. }
    29. }

java上传、下载、删除ftp文件的更多相关文章

  1. Android连接socket服务器上传下载多个文件

    android连接socket服务器上传下载多个文件1.socket服务端SocketServer.java public class SocketServer { ;// 端口号,必须与客户端一致 ...

  2. Python 一键上传下载&一键提交文件到SVN入基线工具

    一键上传下载&一键提交文件到SVN入基线工具   by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用说明 1   注: 根据我司项目规则订制的一套工具,集成以下功能,源码 ...

  3. java FTP 上传下载删除文件

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  4. java 通过sftp服务器上传下载删除文件

    最近做了一个sftp服务器文件下载的功能,mark一下: 首先是一个SftpClientUtil 类,封装了对sftp服务器文件上传.下载.删除的方法 import java.io.File; imp ...

  5. java:工具(汉语转拼音,压缩包,EXCEL,JFrame窗口和文件选择器,SFTP上传下载,FTP工具类,SSH)

    1.汉语转拼音: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuP ...

  6. Struts2 文件上传,下载,删除

    本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用Fi ...

  7. SpringMVC ajax技术无刷新文件上传下载删除示例

    参考 Spring MVC中上传文件实例 SpringMVC结合ajaxfileupload.js实现ajax无刷新文件上传 Spring MVC 文件上传下载 (FileOperateUtil.ja ...

  8. 使用C#WebClient类访问(上传/下载/删除/列出文件目录)由IIS搭建的http文件服务器

    前言 为什么要写这边博文呢?其实,就是使用C#WebClient类访问由IIS搭建的http文件服务器的问题花了我足足两天的时间,因此,有必要写下自己所学到的,同时,也能让广大的博友学习学习一下. 本 ...

  9. Java 上传下载的

    1.上传的步骤: a.导入SmartUpload.jar    b.创建一个上传的类的对象    c.初始化   d.上传至服务器   e.保存    注意:表单提交时需要指定enctype=&quo ...

  10. 使用C#WebClient类访问(上传/下载/删除/列出文件目录)

    在使用WebClient类之前,必须先引用System.Net命名空间,文件下载.上传与删除的都是使用异步编程,也可以使用同步编程, 这里以异步编程为例: 1)文件下载: static void Ma ...

随机推荐

  1. Linux系统查看网站访问日志

    日志地址 /www/wwwlogs/网站名称-access_log 下载到本地,改成txt文件 打开WPS,创建表格,导入数据,选择文件,然后点击下一步,直到选择文件类型时,选择分隔符号,下一步,把勾 ...

  2. OPENGL4_变换

    几种变换的几何意义说明 http://blog.csdn.net/onafioo/article/details/22094247 变换的执行顺序问题 正常顺序 1 视图(观察)变换 2 模型变换 3 ...

  3. 嵌入式C语言模块编写

    C 语言源文件 *.c 理想的模块化应该可以看成是一个黑盒子.即我们只关心模块提供的功能,而不管模块内部的实现细节.在大规模程序开发中,一个程序由很多个模块组成,这些模块的编写任务被分配到不同的人,编 ...

  4. JQuery数组遍历 - $.each(),$().each()和forEach()

  5. 2个rman自动恢复的脚本

    ### scripts 1--the scirpt is used for restore db from vcs to a point to time recovery--and the targe ...

  6. 092 Reverse Linked List II 反转链表 II

    反转从位置 m 到 n 的链表.用一次遍历在原地完成反转.例如:给定 1->2->3->4->5->NULL, m = 2 和 n = 4,返回 1->4-> ...

  7. python学习之高级特性:

    切片:对列表.元组.字符串.字典取中间的一部分,在C中一般是通过for循环拷贝/memcpy/strcat等操作.而python提供了更方便的切片操作符[m:n]:前闭后开,如果从0取m可以省略:如果 ...

  8. body和普通div背景图宽高百分比的区别

    body和普通div背景图的区别  background: url(//m.360buyimg.com/mobilecms/s220x220_jfs/t2746/167/831241799/29915 ...

  9. hihocoder1831 80 Days

    思路: 令p[i] = a[i] - b[i],p[i + n] = p[i](i = 1,2,...,n),则需要找出一段长度为n的连续序列使此序列的任一前缀和均大于-c.转化如下:首先求序列p的前 ...

  10. Linux下环境搭建(一)——java、tomcat配置

    通过2个周末小憩的时间,终究是把linux环境下的jenkins+gitlab+jmeter框架给弄好了.jenkins的配置系列文章,可以翻看我以前的博文.此次,就将在linux下搭建环境的过程以博 ...