FTPClient - Java, upload file

2022-09-01 15:02:46

我正在尝试进行非常简单的文件上传。我想要一个Java FTPClient,它可以上传我告诉它的任何文件。但是pdf总是弄乱,我的pdf编辑器(Adobe)不会打开它,说有一个I / O错误。

我使用以下类:

    import org.apache.commons.net.ftp.FTPClient;
    ....

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

    try {
        client.connect("mydomain.com");
        client.login("user", "password");

        String filename = "myPDF.pdf";
        fis = new FileInputStream(filename);

        client.storeFile("temp.pdf", fis);
        fis.close();
        client.logout();
    } catch (IOException e) {
        e.printStackTrace();
    }

为什么这不起作用,我该如何修复它?


答案 1

它不起作用,因为 FTPClient 的默认传输模式是 。您只需要更新配置即可在二进制模式下传输。FTP.ASCII_FILE_TYPE


答案 2

将其添加到您的文件

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

我在xlsx文件上遇到了同样的问题,这是一个很好的解决方案。


推荐