3

FTPClientApache Commonsとこのコードを使用して単純なテキスト ファイルをアップロードしようとすると、次のようになります。

FTPClient ftp = new FTPClient();
int reply;

// connect
try {

    ftp.connect(serverAdd);
    ftp.login(username,password);
    reply = ftp.getReplyCode();

    if(FTPReply.isPositiveCompletion(reply)){
        System.out.println("Connected Success..");

        // upload file
        try {
            String fileDir = "testfile.txt";
            FileInputStream in = null;         
            in = new FileInputStream(fileDir);       
            ftp.storeFile(fileDir,in);
            System.out.println("File upload complete..");
        }catch(IOException e){
            System.out.println(e);
        }

        ftp.disconnect();
        System.out.println("Disconnected..");

    }else {
        System.out.println("Connection Failed..");
        ftp.disconnect();
    }    

} catch (SocketException ex) {
    ex.printStackTrace();
} catch (IOException ex) {
    ex.printStackTrace();
}

FTP サーバーのルートにファイルが作成されますが、空です。どうしたの?PDF ファイルをアップロードするときに、ftp モードを BINARY に変更しようとしました。しかし、ファイルのサイズも 0 です。

ftp.setFileType(FTP.BINARY_FILE_TYPE);

また、たくさんの txt ファイルをアップロードしたいだけなので、デフォルトの ascii モードで問題ないはずです。

4

3 に答える 3

2

わかりました、それは私のファイアウォールの問題のようです。ファイアウォールを無効にすると、ファイルは問題なく ftp に書き込まれます。

于 2012-08-20T16:25:03.067 に答える
0

FileTranserMode もバイナリに設定する必要がある場合があります。

ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE);
于 2012-08-19T16:55:16.247 に答える