欢迎转载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. POJ 2420 A Star not a Tree? 爬山算法

    B - A Star not a Tree? Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/co ...

  2. c#匿名类 anonymous学习

    感谢http://blog.csdn.net/jjx0224/article/details/5887589 感谢http://hi.baidu.com/guodong828/blog/item/cc ...

  3. HDU 1498 50 years, 50 colors (行列匹配+最小顶点覆盖)

    题目:点击打开链接 题意:每个格子有不同颜色的气球用不同数字表示,每次可选某一行              或某一列来戳气球.每个人有K次机会.求最后哪些气球不能在             k次机会内 ...

  4. [Javascript] IO Functor

    IO functor doesn't like Maybe(), Either() functors. Instead of get a value, it takes a function. API ...

  5. ios开发——实用技术篇OC篇&iOS的主要框架

    iOS的主要框架         阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...

  6. win7重新安装win7

    本方法适用于原本Win7系统下安装,无需U盘,非Ghost,简单几步操作之后与光盘安装过程一样,简便易操作,愿与和我一样有“洁癖”的朋友分享. 1.下载Win7原版光盘镜像,附下载地址: Win7旗舰 ...

  7. yii 隐藏index.php的步骤

    Apache 1.开启apache的mod_rewrite模块       去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号     ...

  8. asp.net获取客户端IP,Mac

    public class GetClientInfo { [DllImport("Iphlpapi.dll")] private static extern int SendARP ...

  9. mysql查询更新时的锁表机制分析

    为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制. 一.概述 MySQL有三种锁的级别:页级.表级.行级.MyISAM和MEMORY存储引擎采用的是表级锁(t ...

  10. Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值

    package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...