Java的FTP上传创建空文件(java FTP upload creates empty file

2019-06-27 04:22发布

当我尝试上传一个简单的文本文件与Apache公地ftpClient与此代码:

imports*

public class ftpUpload {

public static void main(String[] args) {

    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模式更改为二进制文件。 但文件也为0的大小。

ftp.setFileType(FTP.BINARY_FILE_TYPE);

我也只是想上传一堆的txt文件,所以默认ASCII模式应该没事吧?

Answer 1:

好吧,它似乎是与我的防火墙probem。 当我停用防火墙的文件被写入到没有问题的FTP。



Answer 2:

我有同样的问题。 该文件的创建,但大小为0 KB。 设置方式为被动后,我的文件,成功地转移到FTP服务器。 逸岸有3两件事,我们有,而FTP服务器上的文件上传到照顾。

1)。 设置文件类型为BINARY

objFtpClient.setFileType(FTP.BINARY_FILE_TYPE);

2)。 设置文件传输模式为二进制

objFtpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);

3)。 将模式设置为被动(我不知道它在内部做。但它的作品...!)

objFtpClient.enterLocalPassiveMode();


Answer 3:

您可能需要设置FileTranserMode为二进制太:

ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.setFileTransferMode(FTP.BINARY_FILE_TYPE);


文章来源: java FTP upload creates empty file
标签: java ftp