【问题标题】:Android FTP error - 425 Can't open data connectionAndroid FTP 错误 - 425 无法打开数据连接
【发布时间】:2013-06-27 19:31:34
【问题描述】:

我正在使用它来上传一些文件。如果我在本地连接中它可以工作,但如果我使用外部连接,我会收到此消息:来自 ftp 服务器的425 Can't open data connection.

我使用 org.apache.commons.net.ftp.FTPClient 和 org.apache.commons.net.ftp.FTPFile 库。

public static String gravaImagem(String photoFile) {
    FTPClient mFtp = new FTPClient();
    try {
    mFtp.connect(FTPHOST, PORTA);
    mFtp.login(USUARIO, SENHA);
    mFtp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
    mFtp.setFileType(FTPClient.BINARY_FILE_TYPE);
    String origem = Environment.getExternalStorageDirectory().getPath()+File.separator+"Pictures"+File.separator+"ImageSec"+File.separator+photoFile;
    FileInputStream fis = new FileInputStream(origem);
    mFtp.storeFile(photoFile, fis);
    mFtp.logout();
    mFtp.disconnect();
    } catch (SocketException e) {
    e.printStackTrace();
    return "Fail. (ERR#CON3)";
    } catch (IOException e) {
    e.printStackTrace();
    return "Fail. (ERR#CON4)";
    }
    return "Imagem enviada ao servidor.";
}

调试显示没有异常。

【问题讨论】:

    标签: android ftp


    【解决方案1】:

    来自互联网:

    首先 - 最常见的解决方案:更改主动/被动模式 设置。但这可能行不通,如果这样做,它只是一个创可贴 掩盖真正的问题。

    正如我过去提到的,最常见的原因之一是 发生此错误是 FTP 服务器软件配置错误 本身,与 SSL 连接和防火墙有关,其中 连接试图在一个虚假的 IP 地址上建立自己。阅读更多 关于通过 NAT 防火墙的 FTP SSL,一些潜在的解决方案 包括在内。

    还有其他不太可能的原因,例如:

    • 服务器配置为始终使用相同的端口进行被动模式连接,或者客户端配置为始终使用 活动模式连接的相同端口,尽管在这种情况下 通常有问题的软件会引发不同的错误 首先,但我已经看到了这种情况。
    • 在被动模式下,FTP 服务器前面的防火墙没有打开正确的端口。所以服务器告诉客户端 连接到端口 x 上的 ipaddress 1.2.3.4,但防火墙没有 允许端口 x 上的传入连接。大多数防火墙都很智能 足以在看到 PASV 响应时打开端口。副 对于主动模式和 FTP 客户端前面的防火墙,反之亦然。

    来自我: 我在 andoird 上使用过这个库,效果很好,请参阅我的复制/粘贴部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 2014-06-01
      • 2015-07-13
      相关资源
      最近更新 更多