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

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

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

 <dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
  1. 废话不多说,这里面给出代码:
 package com.bing.ftpupload;

 import java.io.File;

 import java.io.FileInputStream;

 import java.io.IOException;

 import java.io.InputStream;

 import org.apache.commons.net.ftp.FTPClient;

 import org.apache.commons.net.ftp.FTPReply;

 public class FtpFileUpload

 {

          public static boolean uploadFile(String url,// FTP服务器hostname

                             int port,// FTP服务器端口

                             String username, // FTP登录账号

                             String password, // FTP登录密码

                             String path, // FTP服务器保存目录

                             String filename, // 上传到FTP服务器上的文件名

                             InputStream input // 输入流     )

          {

                    boolean result = false;

                    FTPClient ftp = new FTPClient();

                    // ftp.setControlEncoding("UTF-8");

                    ftp.setControlEncoding("UTF-8");

                    try

                    {

                             int reply;

                             ftp.connect(url, port);// 连接FTP服务器

                             // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器

                             ftp.login(username, password);// 登录

                             reply = ftp.getReplyCode();

                             if (!FTPReply.isPositiveCompletion(reply))

                             {

                                      ftp.disconnect();

                                      return result;

                             }

                             ftp.setFileType(FTPClient.BINARY_FILE_TYPE);

                             ftp.makeDirectory(path);

                             ftp.changeWorkingDirectory(path);

                             ftp.storeFile(filename, input);

                             input.close();

                             ftp.logout();

                             result = true;

                    }

                    catch (IOException e)

                    {

                             e.printStackTrace();

                    }

                    finally

                    {

                             if (ftp.isConnected())

                             {

                                      try

                                      {

                                                ftp.disconnect();

                                      }

                                      catch (IOException ioe)

                                      {

                                      }

                             }

                    }

                    return result;

          }

          /**

           * 将本地文件上传到FTP服务器上 *

           */

          public static boolean upLoadFromProduction(String url,// FTP服务器hostname

                             int port,// FTP服务器端口

                             String username, // FTP登录账号

                             String password, // FTP登录密码

                             String path, // FTP服务器保存目录

                             String filename, // 上传到FTP服务器上的文件名

                             String orginfilename // 输入流文件名

          )

          {

                    try

                    {

                             FileInputStream in = new FileInputStream(new File(orginfilename));

                             boolean flag = uploadFile(url, port, username, password, path,

                                                filename, in);
return flag;
}
catch (Exception e) {
e.printStackTrace(); } return false; } /** * 将本地文件上传到FTP服务器上 *这个方法和上面的方法作用一样,只是用了默认的文件名 */ public static boolean upLoadFromProduction(String url,// FTP服务器hostname
int port,// FTP服务器端口
String username, // FTP登录账号
String password, // FTP登录密码
String path, // FTP服务器保存目录
String orginfilename // 输入流文件名 ) {
try { String filename=new File(orginfilename).getName(); boolean flag = upLoadFromProduction(url, port, username, password, path,
filename, orginfilename);
return flag;
}
catch (Exception e) {
e.printStackTrace();
} return false; } }

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

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

然后用junit测试下代码:

 @Test

     public void uploadfile()

     {

        String path="E:/updatexml/mph201392830451.xml";

        String url="192.168.3.57";

        int port=21;

        String username="gaea";

               String password="gaea";

        FtpFileUpload.upLoadFromProduction(url, port, username, password, "testxml", path);

     }

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

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

ftp上传java代码的更多相关文章

  1. python之实现ftp上传下载代码(含错误处理)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之实现ftp上传下载代码(含错误处理) #http://www.cnblogs.com/kait ...

  2. python之模块ftplib(实现ftp上传下载代码)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之模块ftplib(实现ftp上传下载代码) #需求:实现ftp上传下载代码(不含错误处理) f ...

  3. .net FTP上传文件

    FTP上传文件代码实现: private void UploadFileByWebClient() { WebClient webClient = new WebClient(); webClient ...

  4. python 网络编程粘包解决方案2 + ftp上传 + socketserver

    一.struct 神奇的打包工具 struct 代码: import struct num = 156 #将int类型的数据打包成4个字节的数据 num_stru = struct.pack('i', ...

  5. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

  6. Java ftp 上传文件和下载文件

    今天同事问我一个ftp 上传文件和下载文件功能应该怎么做,当时有点懵逼,毕竟我也是第一次,然后装了个逼,在网上找了一段代码发给同事,叫他调试一下.结果悲剧了,运行不通过.(装逼失败) 我找的文章链接: ...

  7. FTP上传文件,报错java.net.SocketException: Software caused connection abort: recv failed

    FTP上传功能,使用之前写的代码,一直上传都没有问题,今天突然报这个错误: java.net.SocketException: Software caused connection abort: re ...

  8. java使用ftp上传文件

    ftpServer是apache MINA项目的一个子项目,它实现了一个ftp服务器,与vsftpd是同类产品.Filezilla是一个可视化的ftp服务器. ftp客户端也有很多,如Filezill ...

  9. [html5+java]文件异步读取及上传核心代码

    html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...

随机推荐

  1. Java模拟网站登录02【转载】

    如何用Java代码模拟一些如百度.QQ之类的网站登录?有两个方式,一是发送模拟请求,二是模拟浏览器操作,而这两种方式恰好在Java有开源实现,在这里介绍一个工具包,它是家喻户晓的HttpClient. ...

  2. JAVA反射机制学�

    JAVA反射机制:对于随意一个类,都可以知道这个类的全部属性和方法:对于随意一个对象,都可以调用它的随意一个方法和属性:这样的动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. J ...

  3. 分享一个jQuery动态网格布局插件:Masonry(转)

    在线演示 Masonry是 一款非常强大的jQuery动态网格布局插件,可以帮助开发人员快速开发类似剪贴画的界面效果.和CSS中float的效果不太一样的地方在 于,float先水平排列,然后再垂直排 ...

  4. 利用text插件和css插件优化web应用

    JavaScript的模块化开发到如今,已经相当成熟了,当然,一个应用包含的不仅仅有js,还有html模板和css文件. 那么,如何将html和css也一起打包,来减少没必要的HTTP请求数呢? 本文 ...

  5. 跳表SkipList

    原文:http://www.cnblogs.com/xuqiang/archive/2011/05/22/2053516.html 跳表SkipList   1.聊一聊跳表作者的其人其事 2. 言归正 ...

  6. MySQL_前缀索引_建立

    -- 查看出现频率select count(*) as cnt,cityfrom sakila.city_demo group by city order by cnt desc limit 10; ...

  7. IP101A芯片默认物理地址(PHY Adress)确定

    转载:http://blog.csdn.net/ropai/article/details/6961157 根据IP101A的DataSheet,芯片的第9,10,12,13,15脚为PHYAD0~P ...

  8. C# 之 Int16 Int32 Int64 的区别

    Int16 值类型表示值介于 -32768 到 +32767 之间的有符号整数. Int32 值类型表示值介于 -2,147,483,648 到 +2,147,483,647 之间的有符号整数. In ...

  9. jquery 设置style:display 其实很方便的

    ("#id").css('display','none'); $("#id").css('display','block'); 或 $("#id&qu ...

  10. Android(java)学习笔记114:LayoutInflater和findViewById

    1. 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(). 不同点是LayoutInflater是用来找res/layout/下的xml布局文件, ...