欢迎转载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. Codeforces Gym 100523E E - Gophers SET

    E - GophersTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.a ...

  2. 设计模式六大原则——合成/聚合复用原则(CARP)

    1.定义 简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承. 2.释义 为什么"要尽量使用合成和聚合.尽量不要使用继承"呢? 这是由于: 第一,继 ...

  3. [置顶] ASP.NET MVC - Model Binding

    Http Request 到Input Model的绑定按照model的类型可分为四种情况. Primitive type Collection of primitive type Complex t ...

  4. 通过GitHub和Hexo搭建个人博客

    LinEvan个人博客 最终有自己的个人博客,逼格一下子提高说不少. 网上一搜教程一大堆,非常多已经写得非常好了,我就不凑这个热闹了.推荐一篇博文:怎样搭建一个独立博客--简明Github Pages ...

  5. WEB服务器、应用程序服务器、HTTP服务器区别(转)

    WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了: Web服务器 ...

  6. jQuery获取表单各元素的值

    radio值获取 $("input[type='radio']:checked").val(); 2,设置指定的项为当前选中项 $("input[type='radio' ...

  7. 内核工具 – Sparse 简介

    转载:http://www.cnblogs.com/wang_yb/p/3575039.html Sparse是内核代码静态分析工具, 能够帮助我们找出代码中的隐患. 主要内容: Sparse 介绍 ...

  8. cocos2d-x调度器原理

    程序运行后每达到一帧的时间间隔就会执行一次mainLoop void CCDisplayLinkDirector::mainLoop(void) { //判断是否需要释放CCDirector,通常游戏 ...

  9. struts2.1笔记05:struts2开发环境的搭建

    1.找到开发Struts应用需要使用到的jar文件. 首先我们要在myEclipse中新建一个Web Project,我们这里命名为"struts2".然后我们就要使用jar文件, ...

  10. struts2.1笔记04:struts2优点