Problem with FTP connection

Asked

Viewed 205 times

0

By browser I can connect and browse on my FTP server already by Android error and have the following code.

public class MyActivity extends Activity {


Spinner SpnListarArquivosFTP;
ArrayList<String> ArquivosFTP = new ArrayList<String>();
Spinner SpnListarArquivosCelular;
ArrayList<String> ArquivosCelular = new   ArrayList<String>();
ProgressDialog dialog;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);

    SpnListarArquivosFTP = (Spinner)    findViewById(R.id.spinner1);
    SpnListarArquivosCelular = (Spinner) findViewById(R.id.spinner2);
    ListarArquivosdoFTP();
    ListarArquivosdoCelular();
}

public void ListarArquivosdoFTP()
{
    classe_FTP ClienteFTP = new classe_FTP();
    ClienteFTP.Conectar("ftp://187.45.142.241", "leo", "asdf", 21);
    FTPFile[] arquivos = ClienteFTP.Dir("/pasta1");
    if(arquivos != null)
    {
        int length = arquivos.length;
        for(int i = 0; i < length; ++i)
        {
            FTPFile f = arquivos[i];
            if(f.isFile())
            {
                ArquivosFTP.add(f.getName());
            }
        }
        ArrayAdapter<String> arrayAdapter = new  ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, ArquivosFTP);
        SpnListarArquivosFTP.setAdapter(arrayAdapter);
    }

}

public void ListarArquivosdoCelular()
{
    File diretorio = new File("/mnt/sdcard");
    File[] arquivos = diretorio.listFiles();
    if(arquivos != null)
    {
        int length = arquivos.length;

        for(int i = 0; i < length; ++i)
        {
            File f = arquivos[i];
            if(f.isFile())
            {
                ArquivosCelular.add(f.getName());
            }
        }
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, ArquivosCelular);
        SpnListarArquivosCelular.setAdapter(arrayAdapter);
    }
}

public void Efetuar_Download()
{
    String lstrArq = "";

    try
    {
        classe_FTP ClienteFTP = new classe_FTP();


        lstrArq = "/"+SpnListarArquivosFTP.getSelectedItem().toString();
        File lArquivo = new File(Environment.getExternalStorageDirectory(), lstrArq);
        ClienteFTP.Conectar("ftp://187.45.142.241", "leo", "asdf", 21);

        ClienteFTP.Download("/pasta1", SpnListarArquivosFTP.getSelectedItem().toString(), lArquivo.toString());

    }
    catch (Exception e)
    {
        trace("Erro : " + e.getMessage());
    }

}

public void Download_click(View v)
{
    dialog = ProgressDialog.show(MyActivity.this,"The Club","Sincronizando Dados . . .", false, true);
    dialog.setCancelable(false);

    new Thread()
    {
        public void run()
        {
            try
            {
                Efetuar_Download();
                dialog.dismiss();
            }
            catch (Exception e)
            {
                trace("Erro : " + e.getMessage());
            }

        }
    }.start();
}


public void Efetuar_Upload()
{
    try
    {
        String lstrArq = "/"+SpnListarArquivosCelular.getSelectedItem().toString();
        classe_FTP ClienteFTP = new classe_FTP();

        ClienteFTP.Conectar("ftp://187.45.142.241", "leo", "asdf", 21);
        ClienteFTP.Upload(lstrArq, "/pasta1"+lstrArq);
    }
    catch (Exception e)
    {
        trace("Erro : " + e.getMessage());
    }
}

public void Upload_click(View v)
{
    dialog = ProgressDialog.show(MyActivity.this,"The Club","Sincronizando Dados . . .", false, true);
    dialog.setCancelable(false);

    new Thread()
    {
        public void run()
        {
            try
            {
                Efetuar_Upload();
                dialog.dismiss();
            }
            catch(Exception e)
            {
                trace("Erro : " + e.getMessage());
            }
        }
    }.start();

}
public void toast (String msg)
{
    Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show ();
}

private void trace (String msg)
{
    toast(msg);
}
}


public class classe_FTP

my other class

 FTPClient mFtp;
    private String TAG = "classeFTP";


public FTPFile[] Dir(String Diretorio) {
    try {
        FTPFile[] ftpFiles = mFtp.listFiles(Diretorio);
        return ftpFiles;
    } catch (Exception e) {
        Log.e(TAG, "Erro: não foi possível  listar os   arquivos e pastas do diretório " + Diretorio + ". " + e.getMessage());
    }

    return null;
}

public boolean MudarDiretorio(String Diretorio)
{
    try
    {
        mFtp.changeWorkingDirectory(Diretorio);
    }
    catch(Exception e)
    {
        Log.e(TAG, "Erro: não foi possível mudar o diretório para " + Diretorio);
    }
    return false;
}

public boolean Desconectar()
{
    try
    {
        mFtp.disconnect();
        mFtp = null;
        return true;
    }
    catch (Exception e)
    {
        Log.e(TAG, "Erro: ao desconectar. " + e.getMessage());
    }

    return false;
}

public boolean Conectar(String Host, String Usuario, String Senha, int Porta)
{
    try
    {
        mFtp = new FTPClient();

        mFtp.connect(Host, Porta);

        if (FTPReply.isPositiveCompletion(mFtp.getReplyCode()))
        {
            boolean status = mFtp.login(Usuario, Senha);

            mFtp.setFileType(FTP.BINARY_FILE_TYPE);
            mFtp.enterLocalPassiveMode();

            return status;
        }
    }
    catch(Exception e)
    {
        Log.e(TAG, "Erro: não foi possível conectar" + Host);
    }
    return false;
}

public boolean Download(String DiretorioOrigem, String ArqOrigem, String ArqDestino)
{
    boolean status = false;

    try
    {
        MudarDiretorio(DiretorioOrigem);

        FileOutputStream desFileStream = new FileOutputStream(ArqDestino);;

        mFtp.setFileType(FTP.BINARY_FILE_TYPE);
        mFtp.enterLocalActiveMode();
        mFtp.enterLocalPassiveMode();

        status =  mFtp.retrieveFile(ArqOrigem, desFileStream);
        desFileStream.close();
        Desconectar();

        return status;
    }
    catch (Exception e)
    {
        Log.e(TAG, "Erro: Falha ao efetuar download. " + e.getMessage());
    }

    return status;
}

public boolean Upload(String diretorio, String nomeArquivo)
{
    boolean status = false;
    try
    {
        FileInputStream arqEnviar = new  FileInputStream(Environment.getExternalStorageDirectory() + diretorio);
        mFtp.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE);
        mFtp.setFileType(FTPClient.STREAM_TRANSFER_MODE);
        mFtp.storeFile(nomeArquivo, arqEnviar);
        Desconectar();
        return status;
    }
    catch (Exception e)
    {
        Log.e(TAG, "Erro: Falha ao efetuar Upload. " +  e.getMessage());
    }
    return status;
}

}

You’re making the following mistake

11-06 14:42:12.136    3164-3164/com.example.guilherme.uploadimagemservidor E/Trace﹕ 
error opening trace file: No such file or directory (2)
11-06 14:42:12.864    3164-3164/com.example.guilherme.uploadimagemservidor E/classeFTP﹕ Erro: não foi possível conectarftp://187.45.142.241
11-06 14:42:12.864    3164-3164/com.example.guilherme.uploadimagemservidor E/classeFTP﹕ Erro: não foi possível  listar os   arquivos e pastas do diretório /pasta1. Connection is not open
  • placed permissions in the manifest?

  • ' <uses-permission android:name="android.permission.INTERNET" />' '<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />'

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.