FTP файл на сервер, но это результат поступает с нулевым байтовым размером - PullRequest
3 голосов
/ 15 июля 2011

Я пытаюсь загрузить файл на сервер базы данных, используя FTPClient.Он показывает, что файл успешно передан, но файл пуст (размер 0 байт).

Ниже приведен исходный код, который я использовал для сборки.Кто-нибудь может решить эту проблему?

package Examples;

import org.apache.commons.net.ftp.*;
import java.io.FileInputStream;
import java.io.IOException;

public class Main {

    public static void main(String[] args) {

        FTPClient client = new FTPClient();
        FileInputStream fis = null;

        try {

            client.connect("server");
            client.login("userid", "password");
            System.out.print("Message : " + client.getReplyString());

            client.changeWorkingDirectory("/loaddata");
            System.out.println("Working Directory" + client.printWorkingDirectory());

            client.setDefaultPort(22);
            int f1 = client.getDefaultPort();
            boolean f2 = client.setFileType(FTPClient.BINARY_FILE_TYPE);
            System.out.println("File transfer port no  " + f1);
            System.out.println("FTP server reply ." + client.getReplyString());

            String localfile = "c:/Touch.txt";
            fis = new FileInputStream(localfile);
            int lastSlash = localfile.lastIndexOf('/');
            String filename = localfile.substring(lastSlash+1);
            System.out.println("file : "+fis);

            client.setFileTransferMode(2);
            System.out.println("Flag reply ." + client.getReplyString());

            boolean flag = client.storeFile(filename,fis);

            System.out.println("Flag reply ." + client.getReplyString());

            if (flag) {
                System.out.println("Successfully uploaded the file");
            } else {
                System.out.println("Not able to upload the file");
            }

            fis.close();
            client.logout();
            System.out.println("Logout ." + client.getReplyString());

        } catch (Exception e) {
            System.out.println("Exception " + e);
        } finally {
            if (client.isConnected()) {
                try {
                    client.disconnect();
                    System.out.println("Server Disconnected." + client.getReplyString());
                } catch (IOException ioe) {
                    // do nothing
                }
            }
        }
    }
}

Ответы [ 2 ]

1 голос
/ 01 ноября 2012

Я удалил client.changeWorkingDirectory ( "/ LoadData"); в противном случае все это осталось нетронутым и получило успех. Может ли линия быть проблемой? Затем я снова использовал обыкновенные 3,1

.
1 голос
/ 17 июля 2011

Глядя на некоторые другие вопросы FTPClient, я думаю, что причина в ошибке в библиотеке Apache Commons-NET (из которых FTPClient является компонентом) в версии 3.0.

Установите более новую версию (3.0.1 исправляет ошибку).

...