ftp服务器-Java上传到fth时提示Connection closed without indication.

问题描述

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

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

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();
}
}

这究竟是怎么回事啊,怎么修改才能够跑通,本人新手,求各位大师帮忙,感激不尽

解决方案

http://aspnetdb.iteye.com/blog/970408

解决方案二:

非常感谢,问题已解决,问题已经解决了

时间: 2024-11-02 01:46:09

ftp服务器-Java上传到fth时提示Connection closed without indication.的相关文章

FTP服务器允许上传权限问题

很多电影网站,论坛或其它机构为了方便会员或成员上传电影或者交流文件,都允许用户的上传权限,因为只有允许这个权限,用户才可以上传文件,但这个权限在允许断点再传的ftp服务器中,可以导致很大的问题出来. 允许断点再传的ftp服务器程序,都必须支持一个"Rest"的命令,如果这个命令是用在上传命令前(send命令), 是告诉ftp服务器我要上传的文件会是从ftp服务器中存在的那个文件的什么位置中开始写. 例子: 假设ftp服务器中存在一个文件Readme.txt,文件大小为1000 byte

如何使用ASP建立虚拟的FTP服务器(上)

ftp服务器|ftp服务器 在ASP中采用组件或无组件上传技术,均可以实现文件的上传功能.由此我们可以采用ASP的无组件上传技术,在我们自己的站点上建立一个虚拟的FTP服务器,象真正的FTP服务器一样,为多个用户提供远程文件的管理,同时各个用户只能操作自己的文件. 当文件上传的时候,ASP可以采用FSO或数据库方式来保存文件数据(有些服务器并没有提供FSO功能).这里我采用数据库来保存用户所上传的文件,采用数据库的优点我就不说了,总之很多.还有一个原因就是IIS限制了文件上传的大小(大概最大20

Java实现FTP文件的上传和下载功能的实例代码_java

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)."下载"文件就是从远程主机拷贝文件至自己

java-请问Java怎样实现跨服务器文件上传?

问题描述 请问Java怎样实现跨服务器文件上传? 请问Java怎样实现跨服务器文件上传? 文件信息保存在web服务器数据库中,文件保存在另一台机器. 解决方案 另一台机器也要有处理文件上传的WEB程序,你可以参考Stream上传插件(支持HTML5和Flash两种方式上传)http://www.twinkling.cn/ 指定跨域上传就可以了

图片-java上传文件到tomcat服务器返回302

问题描述 java上传文件到tomcat服务器返回302 前段时间做一个图片上传的功能, 惟独用手机上传大于2M的图片时会上传不了,后台代码也没有报错,只是返回"The document has moved here"这样一个字符串,错误码是302 初步确定是服务器的问题因为我将服务器端口由80改成8080就没问题了..接下来就不知道该怎么测试了,求指点... 解决方案 http://blog.csdn.net/dinner1984/article/details/7901954 解决

利用ssh实现服务器文件上传下载_java

通过ssh实现服务器文件上传下载 写在前面的话 之前记录过一篇使用apache的FTP开源组件实现服务器文件上传下载的方法,但是后来发现在删除的时候会有些权限问题,导致无法删除服务器上的文件.虽然在Windows上使用FileZilla Server设置读写权限后没问题,但是在服务器端还是有些不好用. 因为自己需要实现资源管理功能,除了单文件的FastDFS存储之外,一些特定资源的存储还是打算暂时存放服务器上,项目组同事说后面不会专门在服务器上开FTP服务,于是改成了sftp方式进行操作. 这个

java上传附件问题弹出大小限制

问题描述 java上传附件问题弹出大小限制 Java中上传附件大小限制都取消了,不知道哪还是弹出来"上传文件大小不能超过8M的最高限额,请重新上传" 解决方案 把代码贴出来看看.1.代码中的限制没清楚掉,java或者使用的上传附件插件中有限制2.你将附件上传到哪啊,如果是附件服务器或者ftp 可以看一下是否服务器有限制. 解决方案二: java文件上传大小限制在xml和js,以及后台都可以设置的.看看是不是其中的一个没有改掉啊.

java上传视频截图

1,到CSDN下载: ffmpeg和mencoder命令使用的总结(超级全面) 2,两个程序: package national; import java.util.ArrayList; import java.util.List; public class VideoProcess { public static boolean processTransToImg2(String oldfilepath,String newfilename,String newimg){ System.out

asp.net-C# Activx 上传分块上传大文件时能由Activx来完成合并分块的工作吗

问题描述 C# Activx 上传分块上传大文件时能由Activx来完成合并分块的工作吗 我用C#做activx上传大文件,采用http分块上传的思想,可是服务器端的人说,分块和拼接的工作都应由activx完成,上传完了给服务器一个完成的信号,服务器端只负责把拼接的文件编入数据库和移动到合适的位置,可是网上的好多资料都是拼接工作在服务器端完成,Activx真的能实现远程拼接工作吗,如果能,能否给一些资料,谢谢 解决方案 服务器端的人说的不对,ActiveX只需要分块就可以了.再拼接上显然是服务器