• ftp上传java代码


    欢迎转载http://www.cnblogs.com/shizhongtao/p/3345826.html》

    1. 上传代码就写个简单的小例子。首先要加入jar包。commons-net-1.4.1.jar,

    如果是用的maven管理jar包的话,加入如下配置:

    1 <dependency>
    2            <groupId>commons-net</groupId>
    3            <artifactId>commons-net</artifactId>
    4             <version>1.4.1</version>
    5 </dependency>
    1. 废话不多说,这里面给出代码:
      1 package com.bing.ftpupload;
      2 
      3 import java.io.File;
      4 
      5 import java.io.FileInputStream;
      6 
      7 import java.io.IOException;
      8 
      9 import java.io.InputStream;
     10 
     11 import org.apache.commons.net.ftp.FTPClient;
     12 
     13 import org.apache.commons.net.ftp.FTPReply;
     14 
     15  
     16 
     17 public class FtpFileUpload
     18 
     19 {
     20 
     21         
     22 
     23          public static boolean uploadFile(String url,// FTP服务器hostname
     24 
     25                             int port,// FTP服务器端口
     26 
     27                             String username, // FTP登录账号
     28 
     29                             String password, // FTP登录密码
     30 
     31                             String path, // FTP服务器保存目录
     32 
     33                             String filename, // 上传到FTP服务器上的文件名
     34 
     35                             InputStream input // 输入流     )
     36 
     37          {
     38 
     39                    boolean result = false;
     40 
     41                    FTPClient ftp = new FTPClient();
     42 
     43                    // ftp.setControlEncoding("UTF-8");
     44 
     45                    ftp.setControlEncoding("UTF-8");
     46 
     47                    try
     48 
     49                    {
     50 
     51                             int reply;
     52 
     53                             ftp.connect(url, port);// 连接FTP服务器
     54 
     55                             // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
     56 
     57                             ftp.login(username, password);// 登录
     58 
     59                             reply = ftp.getReplyCode();
     60 
     61                             if (!FTPReply.isPositiveCompletion(reply))
     62 
     63                             {
     64 
     65                                      ftp.disconnect();
     66 
     67                                      return result;
     68 
     69                             }
     70 
     71                             ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
     72 
     73                             ftp.makeDirectory(path);
     74 
     75                             ftp.changeWorkingDirectory(path);
     76 
     77                             ftp.storeFile(filename, input);
     78 
     79                             input.close();
     80 
     81                             ftp.logout();
     82 
     83                             result = true;
     84 
     85                    }
     86 
     87                    catch (IOException e)
     88 
     89                    {
     90 
     91                             e.printStackTrace();
     92 
     93                    }
     94 
     95                    finally
     96 
     97                    {
     98 
     99                             if (ftp.isConnected())
    100 
    101                             {
    102 
    103                                      try
    104 
    105                                      {
    106 
    107                                                ftp.disconnect();
    108 
    109                                      }
    110 
    111                                      catch (IOException ioe)
    112 
    113                                      {
    114 
    115                                      }
    116 
    117                             }
    118 
    119                    }
    120 
    121                    return result;
    122 
    123          }
    124 
    125          /**
    126 
    127           * 将本地文件上传到FTP服务器上 *
    128 
    129           */
    130 
    131          public static boolean upLoadFromProduction(String url,// FTP服务器hostname
    132 
    133                             int port,// FTP服务器端口
    134 
    135                             String username, // FTP登录账号
    136 
    137                             String password, // FTP登录密码
    138 
    139                             String path, // FTP服务器保存目录
    140 
    141                             String filename, // 上传到FTP服务器上的文件名
    142 
    143                             String orginfilename // 输入流文件名
    144 
    145          )
    146 
    147          {
    148 
    149                    try
    150 
    151                    {
    152 
    153                             FileInputStream in = new FileInputStream(new File(orginfilename));
    154 
    155                             boolean flag = uploadFile(url, port, username, password, path,
    156 
    157                                                filename, in);
    158                             return flag;
    159                    }
    160                    catch (Exception e)
    161 
    162                    {
    163                             e.printStackTrace();
    164 
    165                    }
    166 
    167                    return false;
    168 
    169          }
    170 
    171          /**
    172 
    173           * 将本地文件上传到FTP服务器上
    174 
    175 *这个方法和上面的方法作用一样,只是用了默认的文件名
    176 
    177           */
    178 
    179          public static boolean upLoadFromProduction(String url,// FTP服务器hostname
    180                             int port,// FTP服务器端口
    181                             String username, // FTP登录账号
    182                             String password, // FTP登录密码
    183                             String path, // FTP服务器保存目录
    184                             String orginfilename // 输入流文件名
    185 
    186                             )
    187 
    188          {
    189                    try
    190 
    191                    {
    192 
    193                             String filename=new File(orginfilename).getName();
    194 
    195                             boolean flag = upLoadFromProduction(url, port, username, password, path,
    196                                                filename, orginfilename);
    197                             return flag;
    198                    }
    199                    catch (Exception e)
    200 
    201                    {
    202                             e.printStackTrace();
    203                    }
    204 
    205                    return false;
    206 
    207          }
    208 
    209 }

    对于上面代码中对应jar包的api地址:

    https://commons.apache.org/proper/commons-net/javadocs/api-1.4.1/index.html

    然后用junit测试下代码:

     1 @Test
     2 
     3     public void uploadfile()
     4 
     5     {
     6 
     7        String path="E:/updatexml/mph201392830451.xml";
     8 
     9        String url="192.168.3.57";
    10 
    11        int port=21;
    12 
    13        String username="gaea";
    14 
    15               String password="gaea";
    16 
    17        FtpFileUpload.upLoadFromProduction(url, port, username, password, "testxml", path);
    18 
    19     }

     在上面的代码中,你如果想灵活点控制上传目录可以稍微修改下代码:

    if (path!=null)
         {
    //在ftp根目录下穿件文件夹 ftp.makeDirectory(path);
    //更改ftp上传的路径 ftp.changeWorkingDirectory(path); }

    这样如果你的path路径为空的话,就会上传到ftp的根目录下面。

    注意:url如果写作"ftp:192.168.3.57";就会报异常,具体原因没有探究过

    java.net.UnknownHostException: ftp:192.168.3.57

  • 相关阅读:
    TreeView控件
    俄罗斯套娃
    c#文件操作
    c# 操作excle
    vs2010启动越来越慢解决方法
    c# 操作excle[转]
    c# 命名空间别名
    C# openfiledialog的使用
    c# 获取项目根目录方法
    jquery操作复选框(checkbox)的12个小技巧总结
  • 原文地址:https://www.cnblogs.com/shizhongtao/p/3345826.html
Copyright © 2020-2023  润新知