1

我在我的 android 应用程序中使用以下代码片段通过 FTP 传输文件。已经在使用设置了二进制文件模式的被动模式。现在代码是原样的,文件名是硬编码的,用于我手机上存在的文件。我在 Wifi 上连接并希望将文件传输到上述地址上的 FTP 服务器。已测试代码在同一网络上的另一台机器上工作。ADT-eclipse 模拟器对此不起作用,并且我更新到 Android 4.0 的 Xperia Ray ST18i 在连接时没有被检测为有效设备。我已经在 ADT 中成功导入了 commons-net-3.2.jar 并将 .apk 文件复制到我的手机上,以便在连接 Wifi 时进行检查。但是,传输不起作用。如果我能在模拟器或手机上获得有关调试的指针,那就太好了。谢谢。

import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
public class test
{
  private static String server = "<valid-ip-address>";
  private static String username = "<valid-user>";
  private static String password = "password";
  private static String fileLocation = "<valid-file>";
  private static String fileName = "<valid-file>";


  public static void main(String[] args) throws Exception { 
    FTPClient f = new FTPClient();
    f.connect(server);
    f.login(username, password);
    f.enterLocalPassiveMode();
    f.setFileType(FTPClient.BINARY_FILE_TYPE);
    InputStream is = new FileInputStream(fileLocation); 
    f.storeFile(fileName, is);
    f.disconnect();
    is.close();
  }
}
4

1 回答 1

1

-如果您之前测试过此代码,那么这意味着它可以更早地工作,但我仍然想对必须在检查列表中的几个问题提出质疑。

-检查你Internet Permission的清单中有没有。

-检查你的file location是否正确。

-我有你在项目路径中添加了commons-ftp jar,它没有抛出任何编译错误(我知道这很愚蠢,但仍然检查它。)。

-请查看您正在使用with或调用非 UI 线程上的 ftp 代码ThreadHandlerAsyncTask

于 2013-06-07T11:45:13.870 回答