虽然使用了BINARY_FILE_TYPE,但无法通过FTPClient将(​​csv)文件上传到ftpserver

时间:2012-07-29 05:48:37

标签: java csv upload ftp ftp-client

      FileInputStream fis = null;
      ProtocolCommandListener listener;
      listener = new PrintCommandListener(new PrintWriter(System.out));
      FTPClient client = new FTPClient();
      client.addProtocolCommandListener(listener);
      client.connect("ftptest.ftpserver.com");
      int reply = client.getReplyCode();
      if (!FTPReply.isPositiveCompletion(reply))
      {
          client.disconnect();
          System.err.println("FTP ftptest.ftpserver.com refused connection.");
          System.exit(1);
      }

      client.login("username", "password");
      String filename = "D://mnt//home2//app//data//generatedReports//adminReports//07282012//ghostingReport.csv";
      fis = new FileInputStream(filename);
      client.setFileType(FTP.BINARY_FILE_TYPE);
      client.enterRemotePassiveMode();
      if(client.storeFile("//ghostingReport.csv", fis)){
          System.out.println(client.completePendingCommand());
          FTPFile[] listDir=client.listFiles();
          for(int i=0;i<listDir.length;i++){
              FTPFile ftpFile = listDir[0];
              System.out.println(ftpFile.getName());
          }
      }
      fis.close();
      client.logout();
      client.disconnect();

当我运行此代码时,我得到以下输出,但文件未传输。

220-BlackMoon FTP Server版本3.1.8版本8 - Build 1737 220服务就绪 USER用户名 331用户名好,需要密码。 通过密码 230用户已登录,继续。 TYPE I 200命令没关系。 PASV 227进入被动模式(64,132,181,121,149,161) 放弃 221再见。

当我使用

client.setFileTransferMode(FTP.BINARY_FILE_TYPE);

不支持421格式的异常。

编辑:

解决。使用以下代码。

      FileInputStream fis = null;
      ProtocolCommandListener listener;
      listener = new PrintCommandListener(new PrintWriter(System.out));
      FTPClient client = new FTPClient();
      client.addProtocolCommandListener(listener);
      client.connect("ftptest.ftpserver.com");
      int reply = client.getReplyCode();
      if (!FTPReply.isPositiveCompletion(reply))
      {
          client.disconnect();
          System.err.println("FTP ftptest.ftpserver.com refused connection.");
          System.exit(1);
      }

      client.login("username", "password");
      String filename = "D://mnt//home2//app//data//generatedReports//adminReports//07282012//ghostingReport.csv";
      fis = new FileInputStream(filename);
      client.storeFile("ghostingReport.csv", fis);
      client.logout();
      fis.close();
      client.disconnect();

0 个答案:

没有答案