当前位置: 首页 > 面试题库 >

FTPClient的setFileTransferMode不生效

龚浩宕
2023-03-14
问题内容

以下代码旨在获取一个文件(任何文件都不错,但是现在无论如何我都在使用图像),然后将其上传到我的服务器(行之有效的)。唯一的问题是图像在传输后非常歪斜。主要建议是使用FTPClient的setFileTranferMode到FTPClient.BINARY_FILE_TYPE,这…目前没有任何作用…

这是该方法的代码:

public void sendFile(File sendMe) throws IOException{
    f.connect(ip);
    f.login(username, password);

    String recipient=null;
    while(!f.changeWorkingDirectory(path+recipient)){
        recipient=JOptionPane.showInputDialog("What is the name of the computer you are sending this to?");
    }

    f.changeWorkingDirectory(path+recipient);
    f.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
    f.storeFile(sendMe.getName(), new BufferedInputStream(new FileInputStream(sendMe)));
    System.out.println("Stored!");

    f.disconnect();
    System.out.println("Uploaded");
}

一如既往,任何帮助将不胜感激!谢谢!


问题答案:

您没有使用正确的方法来设置文件类型。您应该改用setFileType。

f.setFileType(FTPClient.BINARY_FILE_TYPE);


 类似资料:
  • 我正在使用Apache commons net FTPClient作为批处理作业的一部分分发文件。客户端是封装的,但大致上我发出了以下方法调用(为了简洁起见,我省略了错误处理、流处理等): 当我发出上述命令时,会将以下命令发送到FTP服务器: 这个很好用。然而,现在我需要将文件发送到一个旧系统,该系统不支持或,而是分别依赖和。。 现在我的问题是,如何让FTPClient使用这些命令? 我可以使用方

  • 我正在修改以前使用我自己编写的FTPS库的一些代码。我被要求开始使用ApacheCommonsNet库(主要是FTPClient和FTPSClient),但我在列出文件清单时遇到了问题。我已经阅读了其他问题,但这不是enterLocalPassiveMode问题(Apache Commons Net FTPClient和listFiles()),因为我在连接之后,但在登录之前使用它。同样的代码在我

  • 问题内容: 我正在使用org.apache.commons.net.ftp.FTPClient,看到的行为令人困惑。 下面的方法打算浏览一个FTPFile列表,读入它们,然后对内容进行一些处理。都可以了 (真正)不起作用的是FTPClient对象执行以下操作… 有没有人看到这样的东西?我是FTPClient的新手,我在做错什么吗? 问题答案: 根据该API ,该方法返回时,它无法打开数据连接,在这

  • 问题内容: 我们使用以下Apache Commons Net FTP代码连接到FTP服务器,轮询某些目录中的文件,如果找到文件,则将它们检索到本地计算机: 我们计划将其每分钟运行一次。当部署到Tomcat(7.0.19)时,此代码可以很好地加载并开始正常运行。但是,每次似乎都在 挂起 。我的意思是: 不存在堆转储 Tomcat仍在运行(我可以看到其pid并可以登录到Web Manager应用程序)

  • 代码中的端口号必须与我尝试连接的FTP服务器(本例中为localhost)使用的端口号完全相同吗? 错误日志: java.net.ConnectException:连接被拒绝:在java.net.DualStackPlainSocketImpl.connect0(本机方法)在java.net.DualStackPlainSocketImpl.socketConnect(未知源)在java.net.

  • 问题内容: 我正在尝试做一个非常简单的文件上传。我想要一个Java FTPClient,它可以上传我告诉它的任何文件。但是pdf总是一团糟,我的pdf编辑器(Adobe)不会打开它,说存在I / O错误。 我正在使用以下课程: 为什么此方法不起作用,如何解决? 问题答案: 这是行不通的,因为默认的传输模式FTPClient是。您只需要更新配置即可以二进制模式传输。