我无法从“android app”访问“PC中的ftp服务器”下载文件,我使用无线连接。
public void FTP_Download(){
String server = "192.168.1.135";
int port = 21;
String user = "pc1";
String pass = "1551";
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
ftpClient.login(user, pass);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
Toast.makeText(getBaseContext(), "download starting.",Toast.LENGTH_LONG).show();
// APPROACH #1: using retrieveFile(String, OutputStream)
String remoteFile1 = "i.xml";
File downloadFile1 = new File("sdcard/i.xml");
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
outputStream1.close();
if (success) {
Toast.makeText(getBaseContext(), "File #1 has been downloaded successfully.",Toast.LENGTH_LONG).show();
}
} catch (IOException ex) {
System.out.println("Error: " + ex.getMessage());
ex.printStackTrace();
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
我添加了互联网许可:
<uses-permission android:name="android.permission.INTERNET"/>
注意:我在PC上的模拟器中测试了应用程序,所有的东西都没问题。
当我尝试从默认浏览器访问FTP时,我不能,但我可以从firefox。
任何帮助,请
答案 0 :(得分:1)
我遇到了同样的问题。如果它在模拟器上工作而不在设备上工作,那么可能存在防火墙,或者您的网络不允许连接,因为由于某种原因它不够安全。另外,请确保您的FTP服务器允许使用您的用户名和密码进行连接。