欢迎转载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. ListView返回选中的多项目

    ListView返回选中的多项目     procedure TForm1.Button3Click(Sender: TObject);var  s: string;  I: Integer;begi ...

  2. ural 1993 This cheeseburger you don't need

    顺次存到{} [] () 遇到逗号就处理下,最后处理逗号之后的 #include <iostream> #include <cstring> #include <stri ...

  3. VMware 9 安装 OS X 10.8.4 并安装 Xcode 4.6

    转自:http://blog.csdn.net/weizi4332/article/details/9264799 学习Objective-C必须要有运行环境,Xcode是最好的选择.不过Window ...

  4. mysql数据库问答

    一. 问:如果有一张表,里面有个字段为id的自增主键,当已经向表里面插入了10条数据之后,删除了id为8,9,10的数据,再把mysql重启,之后再插入一条数据,那么这条数据的id值应该是多少,是8, ...

  5. VC6.0代码移植到VS2008运行时乱码问题解决

    转载:http://blog.sina.com.cn/s/blog_6d0cbb030101a3cs.html 问题描述:     之前用VC6.0写过一个OpenGL的程序,后来需要将其放到VS20 ...

  6. android源码编译过程

    1.下载好android源码包. 2.装好vm,ubuntu(如果能在实体机装linux更好). 3.安装所需要的deb包 在终端执行如下命令: sudo apt-get install flex b ...

  7. 每天一个Linux命令(2):cd

    转自:http://www.cnblogs.com/peida/archive/2012/10/24/2736501.html Linux cd命令可以说是Linux中最基本的命令语句,其他的命令语句 ...

  8. [改善Java代码]让多重继承成为现实

    建议41: 让多重继承成为现实 在Java中一个类可以多重实现,但不能多重继承,也就是说一个类能够同时实现多个接口,但不能同时继承多个类.但有时候我们确实需要继承多个类,比如希望拥有两个类的行为功能, ...

  9. [未完成]关于DOM的总结

    这样有什么好处吗? 一但这些东西变成了节点对象,意味着每一个节点对象都会有很多属性和行为提供出来. 如果div是一个对象,那么就可以针对这个对象调用其中的一些方法,对div操作. 这个操作可以包括,比 ...

  10. Wince 对话框程序设计

    如何编程实现wince下“打开文件夹对话框”呢?这里就要涉及到下面要分析的知识了,对话框是一种特殊的窗口,它在wince 作为应用程序和程序使用者之间的交流窗口,通过显示和获取信息使人们的交流更加方便 ...