java - FTPClient(commons net)上传问题

标签 java ftp ftp-client apache-commons-net

我使用以下代码将照片 上传到ftp 主机。但是照片在上传后似乎已损坏: 照片底部有灰色细线。

可以通过减小 FTPClient 对象的缓冲区大小来减小灰线的大小。

import java.io.File;
import java.io.FileInputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.net.ftp.FTPClient;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPReply;
import sun.misc.Cleaner;

public class FtpConnectDemo1 {

  public static void main(String[] args) {
    FTPClient client = new FTPClient();

    try {
      client.connect("ftp.ftpsite.com");

      //
      // When login success the login method returns true.
      //
      boolean login = client.login("user@ftpsite.com", "pass");

      if (login) {
        System.out.println("Login success...");

        int replay = client.getReplyCode();

        if (FTPReply.isPositiveCompletion(replay)) {
          File file = new File("C:\\Users\\e.behravesh\\Pictures\\me2_rect.jpg");
          FileInputStream input = new FileInputStream(file);
          client.setFileType(FTP.BINARY_FILE_TYPE);

          if (!client.storeFile(file.getName(), input)) {
            System.out.println("upload failed!");
          }          

          input.close();
        }
        //
        // When logout success the logout method returns true.
        //
        boolean logout = client.logout();
        if (logout) {
          System.out.println("Logout from FTP server...");
        }
      } else {
        System.out.println("Login fail...");
      }

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        //
        // Closes the connection to the FTP server
        //
        client.disconnect();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

最佳答案

这是在最新版本的库中解决的已知错误:
http://commons.apache.org/net/changes-report.html#a3.0.1

关于java - FTPClient(commons net)上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6087771/

相关文章:

java - Spark 是否允许对 DynamoDB 使用 Amazon Assumed Role 和 STS 临时凭证?

java - 如何使用 facebook api 登录我的 Android 应用程序?

java - Lucene IndexSearcher#search(Query,int),参数n的影响

linux - 检测SFTP文件上传完成

java - java中FTPClient类的问题

java - 父类(super class)不能分配给运行时由 asm 实现的类

java - Forefront TMG 与 java 和 php (ftp)

ftp - 如何使用 FileZilla 递归删除具有特定名称的所有文件

java - 执行 FTP 客户端方法时按钮保持按下状态

java - 如何将ArrayList从AsyncTask返回到另一个类?