依赖

<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.8.0</version>
</dependency>

代码

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPReply;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;public class FtpUpload {public static void main(String[] args) {String host = "127.0.0.1";int port = 2134;String userName = "testFtp";String password = "testFtp";File file = new File("D:\\testFile.txt");// ftpFTPClient ftpClient = new FTPClient();// 设置连接使用的字符编码。必须在建立连接之前设置。ftpClient.setControlEncoding("UTF-8");try {// 连接服务端ftpClient.connect(host, port);System.out.println("连接服务器" + host + ":" + port);// ftp操作可能会返回一些响应信息,可以打印出来看看// showServerReply(ftpClient);// 尝试连接后,检查响应码以确认成功int replyCode = ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(replyCode)) {disconnectQuietly(ftpClient);System.out.println("服务器拒绝连接");return;}} catch (IOException e) {disconnectQuietly(ftpClient);System.out.println("连接ftp失败");e.printStackTrace();return;}try {// 登录ftpboolean success = ftpClient.login(userName, password);if (!success) {ftpClient.logout();System.out.println("客户端登录失败");return;}System.out.println("客户端登录成功");// 大部分情况,上传文件时,需要设置这两项// 设置文件传输类型为二进制文件类型ftpClient.setFileType(FTP.BINARY_FILE_TYPE);// 设置被动模式ftpClient.enterLocalPassiveMode();boolean done = false;try (final InputStream input = new FileInputStream(file)) {// 设置上传到ftp上使用的文件名和路径String remote = "testUpload/" + file.getName();// 上传文件done = ftpClient.storeFile(remote, input);}if (done) {System.out.println("上传文件" + file.getName() + "成功");// ftpClient.completePendingCommand();} else {System.out.println("上传文件" + file.getName() + "失败");showServerReply(ftpClient);}ftpClient.noop(); // check that control connection is working OKftpClient.logout();} catch(FTPConnectionClosedException e) {System.out.println("服务端关闭连接");e.printStackTrace();} catch (IOException e) {System.out.println("客户端登录或操作失败");e.printStackTrace();} finally {disconnectQuietly(ftpClient);}}/*** 断开ftp连接*/public static void disconnectQuietly(FTPClient ftpClient) {if (ftpClient.isConnected()) {try {ftpClient.disconnect();} catch (IOException ex) {// do nothing}}}/*** 打印服务器返回信息*/public static void showServerReply(FTPClient ftpClient) {String[] replies = ftpClient.getReplyStrings();if (replies != null && replies.length > 0) {for (String aReply : replies) {System.out.println("服务端响应信息: " + aReply);}}}
}

Java实现FTP上传文件相关推荐

  1. java ftp 上传文件到服务器,java实现ftp上传文件到服务器

    java实现ftp上传文件到服务器 内容精选 换一换 怎样上传文件到Windows操作系统云服务器?安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ ...

  2. java ftp上传超时_有关java的ftp上传文件时断网的问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我有一个java的ftp程序,他既是客户端又是服务端,我把程序放在两台电脑上运行, computer1和computer2,在computer1为文件上传 ...

  3. Java通过ftp上传文件

    首先,pom.xml添加引用 <dependency><groupId>commons-net</groupId><artifactId>commons ...

  4. java使用ftp上传文件

    linux服务器配置 安装ftp yum install vsftpd 启动服务 service vsftpd start 开机启动 chkconfig --level 35 vsftpd on 设置 ...

  5. java通过ftp上传文件到服务器_java-通过FTP将文件传输到服务器,但结果以零...

    我正在尝试使用FTPClient将文件上传到数据库服务器.它显示文件已成功传输,但是文件为空(大小为0字节). 以下是我用来构建的源代码.谁能解决这个问题? package Examples; imp ...

  6. java ftp上传文件相关代码梳理

    java实现ftp文件上传 1.ftp文件上传步骤 1)连接ftp 2)检查工作目录是否存在 3)检查是否上传成功 4)完成任务后,断开ftp 2.具体如下,直接贴上核心代码: A)导入核心pom依赖 ...

  7. java ftp 上传文件 进度条_java FTP上传文件(进度条显示进度)

    java实现FTP上传有2种方式,一种是org.apache.commons.net.ftp.FTPClient这个jar包,一种是sun.net.ftp.FtpClient.不知道为什么,在使用前一 ...

  8. java ftp上传文件0字节_FTP上传无文件以及0字节问题

    这几天在做一个FTP上传文件的功能,在本地运行完全没有问题,上传文件成功,图片成功显示.在公网(centos系统)上进行测试的时候就出了问题了,上传一直卡到storeFile上,一般是会卡住30-60 ...

  9. ftp 文件夹 上传到服务器,ftp上传文件夹到服务器 远程路径

    ftp上传文件夹到服务器 远程路径 内容精选 换一换 WinSCP工具可以实现在本地与远程计算机之间安全地复制文件.与使用FTP上传代码相比,通过 WinSCP 可以直接使用服务器账户密码访问服务器, ...

最新文章

  1. MXNet学习:试用卷积-训练CIFAR-10数据集
  2. python:No module named ‘pywt‘解决办法
  3. 1268:【例9.12】完全背包问题
  4. 枚举算法:最小连续n个合数。试求出最小的连续n个合数(其中n是键盘输入的任意正整数)。
  5. Java基础:Collection集合、Iterator迭代器以及泛型
  6. python 快速排名发包_2019年SEO快速排名发包技术及原理 - 立金哥
  7. matlab 非线性辨识,非线性系统辨识Matlab实现
  8. Mac配置环境变量的位置
  9. python体脂率计算
  10. 进去服务器bios设置u盘启动不了系统,重装系统怎么进不了bios设置u盘启动
  11. Python 获取LOL皮肤
  12. 地毯店人员告诉你如何正确选购合适地毯
  13. 手机ppi排行测试软件,2018主流厂商旗舰手机屏幕测试数据汇总和子项排名统计...
  14. 用python来实现输出 1-1000的素数,并且按照每8个一行输出
  15. 纠正你读错的电脑英文词汇--(1)
  16. 腾讯终面:孤单的QQ号码怎么找?
  17. Jmeter压测运行原理,这些你知道么?
  18. 你所不知道的Spring的@Autowired实现细节
  19. Linux系统编程 复习笔记
  20. 91,bigmeap 功能对比

热门文章

  1. 注意力机制详解(脉络版)
  2. 微信小程序周报(第五期)
  3. There is no getter for property named 'DEPARTMENT_ID' in 'class com.sccy.hr.model.RewardsPunishment'
  4. Vulnhub_Beelzebub
  5. CSS margin 重叠(margin collapse)
  6. 【libuv高效编程】libuv学习超详细教程2——libuv框架初窥
  7. win11怎么查看隐藏文件
  8. 基于ssm的出租车管理系统vue源码
  9. 计算机 名片,计算机版本的名片识别软件
  10. Android中使用ExpandableListView实现好友分组