注意里面的文件编码,连接过程编码与服务器编码不一致的话会导致上传中文乱码情况。

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;import org.apache.commons.net.ftp.*;
import org.apache.log4j.Logger;public class FtpUtil {static Logger Log = Logger.getLogger(FtpUtil.class);private  FTPClient ftpClient;private static String ENCODING = "GBK";FTPClientConfig ftpConfig = new FTPClientConfig("UNIX");public boolean connectServer(String address,int port,String name,String passwd) {boolean flag = false;try {ftpClient = new FTPClient();ftpConfig.setServerLanguageCode("ISO-8859-1");ftpClient.connect(address, port);if(ftpClient.login(name,passwd)){if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {ENCODING = "UTF-8";}ftpClient.setControlEncoding(ENCODING);ftpClient.enterLocalPassiveMode();ftpClient.setFileType(FTP.BINARY_FILE_TYPE);ftpClient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);ftpClient.setDataTimeout(120000);}int reply = ftpClient.getReplyCode();if (FTPReply.isPositiveCompletion(reply)) {flag = true;Log.info("FTP connect success!");} else {Log.warn("FTP refused to connect!");ftpClient.disconnect();}} catch (Exception e) {Log.error("Failed to login ftp " + address + ":" + port, e);}return flag;}public boolean existFile(String path) throws IOException {boolean flag = false;FTPFile[] ftpFileArr = ftpClient.listFiles(path);if (ftpFileArr.length > 0) {flag = true;}return flag;}public boolean makeDirectory(String dir) {boolean flag = true;try {String newdir = new String(dir.getBytes(ENCODING), "ISO-8859-1");flag = ftpClient.makeDirectory(newdir);if (flag) {Log.info("make directory " + newdir + " successfully !");} else {Log.info("make directory " + newdir + " failed !");}} catch (Exception e) {e.printStackTrace();}return flag;}public boolean uploadFile(String remoteFilePath, File uploadFile) throws IOException {boolean flag = false;InputStream input = null;try {input = new FileInputStream(uploadFile);String remote = new String(remoteFilePath.getBytes(ENCODING), "ISO-8859-1");if (ftpClient.appendFile(remote, input)) {flag = true;}} finally {input.close();}Log.info("push file (" + uploadFile.getCanonicalPath() + ") => " + (flag ? "SUCCESS" : "FAILED"));return flag;}public void closeConnect() {try {if (ftpClient != null) {ftpClient.logout();ftpClient.disconnect();}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) throws Exception{FtpUtil ftpClient = new FtpUtil();//截取最后一个"/",获取文件目录String fileAllName = "/home/cld123/springbootFtpTest/linux节145.txt";File uploadFile = new File("C:\\Users\\tyx123\\Desktop\\txt\\linux节点配置.txt");String uploadFileDir = fileAllName.substring(0,fileAllName.lastIndexOf("/")+1);try {if(ftpClient.connectServer("192.168.0.223",21,"cld123","cld123")){if(!ftpClient.existFile(uploadFileDir)){ftpClient.makeDirectory(uploadFileDir);}boolean flag = ftpClient.uploadFile(fileAllName, uploadFile);}} catch (IOException e) {e.printStackTrace();}ftpClient.closeConnect();}
}

java远程操作ftp服务器上传下载相关推荐

  1. Java通过FTP服务器上传下载文件的方法

    本文介绍了如何使用Apache Jakarta Commons Net(commons-net-3.3.jar)基于FileZilla Server服务器实现FTP服务器上文件的上传/下载/删除等操作 ...

  2. linux使用ftp传递文件,linux ftp命令:(从远程ftp服务器上传下载文件)

    FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中 -v 显示远程服务器的所有响应信息: -n 限制ftp的自动登录,即不使用:.n etrc文件: -d 使用调试方式: ...

  3. PHP操作FTP类 (上传下载移动创建等)

    使用PHP操作FTP-用法 <?php // 联接FTP服务器 $conn = ftp_connect(ftp.server.com); // 使用username和password登录 ftp ...

  4. java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题

    废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String usern ...

  5. linux ftp 550 下载,linux ftp服务器上传文件夹时提示550错误问题解决方法

    linux ftp服务器上传文件夹时提示550错误问题解决方法 标签: linux ftp服务器 550 中文文件夹上传错误 问题 分类: 计算机 2010-11-06 22:47 前几天在实验室搭配 ...

  6. ftp服务器上传文件权限设置,ftp服务器 上传文件权限设置

    ftp服务器 上传文件权限设置 内容精选 换一换 华为云对象存储服务帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用对 ...

  7. 关于FileZilla连接FTP站点上传下载文件

    关于FileZilla连接FTP站点上传下载文件 浏览器搜索FileZilla官网:https://www.filezilla.cn/download 根据自己操作系统安装 安装完成之后的启动界面是这 ...

  8. ftp服务器上传文件不行,ftp服务器上传文件不行

    ftp服务器上传文件不行 内容精选 换一换 本文介绍如何在 Linux 系统的本地机器上使用 FTP 服务,将文件从本地上传到云服务器中.已在待上传文件的云服务器中搭建 FTP 服务.如果您的云服务器 ...

  9. ftp服务器上传工具,3款服务器上传工具好用推荐

    对于ftp服务器上传工具,你了解多少?其实一般人也接触不到这种软件.服务器上传工具主要是针对从事网站管理的工作人员比较有利的一款工具.可以帮助他们快速的解决工作中的问题.方便.简单.快捷又明了的解决问 ...

最新文章

  1. Vue教程6【完结】【vue-router】路由,路由传参,编程式路由导航,缓存路由组件,路由守卫,路由模式,vue ui组件库
  2. 键盘历史记录实用程序已停止工作 解决办法
  3. 独家 | 增强数据库管理:一份简单的综述
  4. Kali linux 2016.2(Rolling)中metasploit的端口扫描
  5. hive创建mysql表,hiveMysql创建、修改、删除字段/表
  6. 模拟器中文输入法设置
  7. iOS多设备分辨率适配
  8. 【渝粤题库】国家开放大学2021春1703农村发展理论与实践题目
  9. c语言分治算法求最大值,分治法找最大值(C語言)
  10. Django常用命令
  11. python安装BeautifulSoup注意事项
  12. 智能指针的标准之争:Boost vs. Loki [转]
  13. python解压7z文件_Python使用7z解压软件备份文件脚本分享
  14. 用摄像管替换电视机电路里的显像管的摄像机
  15. rips php,审计PHP工具篇之 RIPS
  16. 【华为OD机试真题 python】 比赛【2022 Q4 | 100分】
  17. winwebmail轻松搭建邮件服务器
  18. 独立成分分析ICA系列2:概念、应用和估计原理.
  19. 计算机类专业模拟试卷3,计算机类专业模拟试卷.pdf
  20. 【ADV5】adv绑定不想创建那么多骨骼怎么设置

热门文章

  1. 语音信号处理MATLAB实现
  2. Python学习笔记:异步IO(3)
  3. python基础:week three
  4. C语言编译过程总结详解
  5. 优先队列(priority_queue)的原理及用法
  6. [云炬创业学笔记]第一章创业是什么测试6
  7. [云炬创业基础笔记]第二章创业者测试21
  8. [云炬创业基础笔记]第五章创业机会评估测试6
  9. 科大星云诗社动态20210215
  10. 汇编语言Makefile