0

我无法从“android 应用”访问“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 访问。

请有任何帮助

4

1 回答 1

1

我有同样的问题。如果它在模拟器上运行而不是在设备上运行,则可能是防火墙挡住了您的路,或者您的网络不允许连接,因为由于某种原因它不够安全。还要确保您的 FTP 服务器允许来自您的用户名和密码的连接。

于 2012-11-09T18:53:29.287 回答