Java上传到fth时提示Connection closed without indication-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Java上传到fth时提示Connection closed without indication

2016-06-06 11:54:25 12931 1

如题,自己在系统中直接上传的话是可以的,但用代码上传就不行了,代码是这样的

import java.io.File;
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.FTPReply;
public class Upload
{
/**
Description: 向FTP服务器上传文件
@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 (Exception e)
{
e.printStackTrace();
}
}
}
return success;
}
public static void main(String[] args)
{
try
{
String filepath = "D:/upload/liuqian.txt";
FileInputStream in = new FileInputStream(new File(filepath));
boolean flag = uploadFile("localhost", 21, "lq", "123", "D:/upload", "walmartDemo", in);
System.out.println(flag);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

提示出错信息

org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:317)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:400)
at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:924)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:183)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
at cn.com.sensetech.ftp.Upload.uploadFile(Upload.java:30)
at cn.com.sensetech.ftp.Upload.main(Upload.java:105)
false

调试的时候发现错误出现在这里

finally
{
if (ftp.isConnected())
{
try
{
ftp.disconnect();
}
catch (Exception e)
{
e.printStackTrace();
}
}

这究竟是怎么回事啊,怎么修改才能够跑通?

取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:28:09

    需要注意的是,ftp.isConnected最好要写在finally里面,不要直接写在ftp.logout()后面.

    0 0
相关问答

42

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 147831浏览量 回答数 42

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 234322浏览量 回答数 170

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 160183浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 341598浏览量 回答数 8

119

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 303088浏览量 回答数 119

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 149115浏览量 回答数 22

24

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 661345浏览量 回答数 24

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 148352浏览量 回答数 31

34

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 284169浏览量 回答数 34

1

回答

foxmail 关联企业邮箱提示邮箱地址或者密码错误

2017-12-30 21:50:39 152208浏览量 回答数 1
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载