ftpclient怎么上传文件

在java程序开发中,ftp用的比较多,经常打交道,比如说向FTP服务器上传文件、下载文件,现在给大家介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传文件。

操作方法

  • 01

    原理就不介绍了,大家直接看代码

  • 02

    /** * Description: 向FTP服务器上传文件 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建 * @param url FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param path FTP服务器保存目录 * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */ publicstaticboolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) { boolean success = false; FTPClient ftp = new FTPClient(); 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 success; } ftp.changeWorkingDirectory(path); ftp.storeFile(filename, input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; }<pre></pre> /** * Description: 向FTP服务器上传文件 * @Version1.0 Jul 27, 2008 4:31:09 PM by 崔红保(cuihongbao@d-heaven.com)创建 * @param url FTP服务器hostname * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param path FTP服务器保存目录 * @param filename 上传到FTP服务器上的文件名 * @param input 输入流 * @return 成功返回true,否则返回false */ public static boolean uploadFile(String url,int port,String username, String password, String path, String filename, InputStream input) { boolean success = false; FTPClient ftp = new FTPClient(); 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 success; } ftp.changeWorkingDirectory(path); ftp.storeFile(filename, input); input.close(); ftp.logout(); success = true; } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } } return success; }

  • 03

    两个小例子: 1.将本地文件上传到FTP服务器上,代码如下: @Test publicvoid testUpLoadFromDisk(){ try { FileInputStream in=new FileInputStream(new File("D:/test.txt")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in); System.out.println(flag); } catch (FileNotFoundException e) { e.printStackTrace(); } }<pre></pre> @Test public void testUpLoadFromDisk(){ try { FileInputStream in=new FileInputStream(new File("D:/test.txt")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", in); System.out.println(flag); } catch (FileNotFoundException e) { e.printStackTrace(); } }

  • 04

    2.在FTP服务器上生成一个文件,并将一个字符串写入到该文件中 @Test publicvoid testUpLoadFromString(){ try { InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input); System.out.println(flag); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }<pre></pre> @Test public void testUpLoadFromString(){ try { InputStream input = new ByteArrayInputStream("test ftp".getBytes("utf-8")); boolean flag = uploadFile("127.0.0.1", 21, "test", "test", "D:/ftp", "test.txt", input); System.out.println(flag); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }

(0)

相关推荐

  • PHPstudy修改上传文件限制大小限制的方法

    越来越多的童鞋在使用PHPstudy来搭建网站, ,PHPstudy搭建php+mysql的网站还是非常不错的,主要就是可以随意切换php版本,但是不少童鞋在用php程序上传文件时候,默认限制的只能上 ...

  • 百度云管家怎么上传文件夹?百度云上传文件夹方法图解

    百度云管家是一个非常不错的云盘,不仅存储空间大,而且还支持云播放功能,功能强大并且非常实用,下面告诉大家百度云管家怎么上传文件夹。 百度云上传文件夹方法: 第一步:安装文件夹上传插件 第二步:选择上传 ...

  • FTP上传文件经常中断或超时的解决方案[完整篇]

    近日做了一个简单的活,就是把一个phpcms建的网站整站迁移到另一个空间上。原本应该是很简单的事情,无奈却处处碰壁,遇到各种问题。终于在今天把所有问题解决,特撰写此文以留纪念,同时这里面遇到的一些问题 ...

  • 百度云网盘可以上传文件夹吗?百度云网盘上传文件夹教程

    大家都知道百度云网盘是百度公司推出的一个免费给用户存储文件的服务,那么百度云网盘是怎么进行上传文件的呢?下面小编同学来给大家演示一下: 步骤一:登录到百度网盘以后,然后再全部文件窗口里面点击选择要上传 ...

  • 图解使用FTP工具上传文件以FlashFXP为例

    现以FlashFXP为例,图解使用FTP工具上传文件。 1: 运行 LeapFTP,点击1处(站点->站点管理器),弹出“站点管理器”窗口;在2处选择“My Servers”项,然后在3处点击“ ...

  • 手机360云盘怎么设置仅用wifi上传文件?

    在你不知道没有连接WIFI情况下上传文件、音乐或者相片的时是会消耗大量的流量,而且也上传比较慢。其实这个情况我们可以在手机360云盘开启仅用wifi上传,就是说在你没有链接wifi的情况下是上传不了任 ...

  • 千牛云盘怎么上传文件夹?淘盘上传和下载文件夹方法介绍

    千牛云盘现在已经正式更名为淘盘,是一款非常好用的网络硬盘,这个千牛云盘怎么上传文件夹呢?小编跟大家分享淘盘怎么上传文件夹,以及怎么从淘盘上下载文件,希望能帮到刚刚开始用淘盘还不太会用的伙伴们哦! 方法 ...

  • ftp二进制上传 FTP设置二进制(binary)模式上传文件图文教程

    FTP怎么使用二进制上传文件?在linux中时我们需要设置ftp上伟为二进制,在 windows时好像没这个区别哦,下面我们来1.FlashFXP。2.LeapFTP。 3.CuteFTP。常用的ft ...

  • 酷盘PC版如何上传文件具体上传步骤图解

    酷盘PC版上传文件的方法如下: 1.首先,安装酷盘PC客户端,注册并登录酷盘。 2.双击桌面的酷盘图标或双击任务栏上的酷盘图标打开酷盘界面。 3.在酷盘界面上点击“上传”按钮选择文件或文件夹上传至酷盘 ...