使用Commons net实现FTP上传文件(网络问题无响应解决方案)

本文总结了在使用Apache Commons Net进行FTP文件上传时遇到的网络无响应问题及其解决方案。当网络不稳定或上传大文件时,`ftpClient.storeFile()`可能会卡住。建议使用`appendFileStream()`或`storeFileStream()`获取远程目录创建文件并手动控制上传,以实现断点续传。另一种方法是通过主线程和子线程配合,确保文件上传完成后关闭子线程并继续上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       这段时间一直忙着项目开发,没顾上写总结。今天抽点时间对于之前遇到的ftp上传文件无应答的问题总结一下,方便自己以后查看,也方便下个遇到此问题的人能够快速的解决问题。

       使用Apache的开源框架写的一个很简单的ftp上传的demo,如果网络环境稳定的情况下上传文件不会有问题,也能得到服务器文件传完后的响应状态,但是遇到大文件和网络不好的情况下,上传文件时间比较长(半个小时以上),这时执行ftpClient.storeFile("test.ts", in)这句代码会卡在这里,即使文件传完了也不会做出响应,得不到服务器的响应代码就不会继续往下执行,线程也就会一直停在这里。下面是一个简单的文件ftp上传demo:

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.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class FtpUtil {

	public static void main(String[] args) {

		FTPClient ftpClient = new FTPClient();

		try {
			// 连接指定服务器,默认端口为21
			ftpClient.connect("127.0.0.1");
			System.out.println("connect to server")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值