我在我的 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();
}
}