程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> ftp服務器-Java上傳到fth時提示Connection closed without indication.

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved