在连接ftp服务器时,刚开始密码弄错了,使用工具FlashFXP修改密码后就能连上,
FileZilla连接时,报证书过期,选择信任该证书并继续登录,登录不上,修改密码后报同样的错误,后来在编辑中选择清除个人信息,全部选中(包括快速连接栏历史,重新连接信息,站点管理器条目和传输队列)后删除,重新添加新站点后可以连接。
package com.sany.newmes.util;
import org.apache.commons.net.ftp.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.X509TrustManager;
import java.io.*;
import java.net.SocketException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
/**
* Created on 2021/3/15.
*
* @author
*/
public class FtpTest {
private static final Logger logger = LoggerFactory.getLogger(FtpTest.class);
/**
* 本地字符编码
*/
private static String LOCAL_CHARSET = "UTF-8";
// FTP协议里面,规定文件名编码为iso-8859-1
private static String SERVER_CHARSET = "ISO-8859-1";
//ftp的端口,主机,用户名和密码
private static int port = 60021;
private static String host = "10.0.66.246";
private static String username = "scr";
private static String password = "0ljmnrw0i?D";
/**
* 获取FTPClient对象
*
* @param ftpHost FTP主机服务器
* @param ftpPassword FTP 登录密码
* @param ftpUserName FTP登录用户名
* @param ftpPort FTP端口 默认为21
* @return
*/
public static FTPSClient getFTPClient(String ftpHost, int ftpPort, String ftpUserName, String ftpPassword) {
FTPSClient ftpClient = null;
try {
//创建SSL上下文
SSLContext sslContext = SSLContext.getInstance("TLS");
//自定义证书,忽略已过期证书
X509TrustManager trustManager = new X509TrustManager() {
@Override
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {}
@Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {}
@Override
public X509Certificate[] getAcceptedIssuers() {return new X5

本文提供了一个Java实现的FTP操作示例,包括连接配置、文件上传、下载及删除等功能,并解决了连接过程中遇到的问题,如证书过期和编码转换。

1373

被折叠的 条评论
为什么被折叠?



