Olá Galera,
estou tentando usar esse tutorial bem simples: http://douglasalipio.wordpress.com/2010/09/07/ddouglas-mesquitaworkspaceandroidsendftpreslayoutmain-xml/#comment-40
Ele pega um arquivo e envia por FTP mas os arquivos enviados com conteúdo, são salvos no FTP sem nenhum conteúdo
O que faço pra concertar isso, estou usando: commons-net-2.0
Ja tentei soluções desses foruns, mas não deram certo:
http://www.guj.com.br/java/262539-resolvido-arquivo-xml-baixado-via-ftp-vindo-vazio---android
http://www.guj.com.br/java/49682-ftp---problemas-ao-enviar-o-arquivo
Meu Code:
import org.apache.commons.net.ftp.FTPClient;
public class EnviarArquivoFTP extends Activity implements OnClickListener,Runnable {
private ProgressDialog dialog;
private Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.enviararquivoftp);
enviar();
Button b = (Button) findViewById(R.enviarArquivo.btnenviarFTP);
b.setOnClickListener(this);
}
public void enviar(){
dialog = ProgressDialog.show(this, "Social Alimenta FTP",
"Enviando arquivo, por favor aguarde...", false, true);
// Faz o envio do arquivo FTP.
new Thread(this).start();
}
public void onClick(View v) {
/** InitComponents */
Intent ittEVoltar = new Intent(getApplicationContext(), SocialAlimenta2Activity.class);
startActivity(ittEVoltar);
}
public void run() {
String login = "******";
String senha = "******";
String diretorio = "/data/data/br.gov.sjc.socialalimenta/files/";
String nomeArquivo = "socialAlimenta.txt";
final TextView notificacao = (TextView) findViewById(R.enviarArquivo.lblnotificacao);
try {
envioFTP(login, senha, diretorio, nomeArquivo);
handler.post(new Runnable() {
public void run() {
notificacao.setText("Arquivo enviado com sucesso");
notificacao.setVisibility(View.VISIBLE);
}
});
} catch (IOException e) {
e.printStackTrace();
}finally {
dialog.dismiss();
}
}
/**
* Faz o envio do arquivo via FTP.
*
* @param login
* @param senha
* @param diretorio
* @param nomeArquivo
* @throws IOException
*/
private void envioFTP(String login, String senha, String diretorio, String nomeArquivo) throws IOException {
FTPClient ftp = new FTPClient();
boolean erroEnvio = true;
int tentativas = 1;
do {
try {
ftp.connect( "000.000.000.000", 21 );
ftp.login(login, senha);
//FileInputStream arqEnviar = new FileInputStream(diretorio);
InputStream arqEnviar = new FileInputStream(diretorio);
ftp.setFileTransferMode(FTPClient.ASCII_FILE_TYPE);
ftp.setFileType(FTPClient.ASCII_FILE_TYPE);
ftp.storeFile(nomeArquivo, arqEnviar);
ftp.logout();
ftp.disconnect();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException ioE) {
ioE.printStackTrace();
erroEnvio = false;
tentativas++;
erroEnvio = true;
} catch (Exception e) {
e.printStackTrace();
}finally{
ftp.logout();
ftp.disconnect();
}
}
while (erroEnvio);
}

