Problema com FTP = API da apache

Galera, seguinte, to subindo um arquivo de backup de sql server no ftp da minha hospedagem.
So que quando eu vou usar o arquivo que esta lá no ftp para fazer restauracao do BD, o arquivo está corrpido.

Alguem sabe o que pode ser?

para fazer upload eu usei a API da apache e segui o tutorial do daniel destro.

segue o codigo.


import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.GregorianCalendar;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FTP {
	public static void main(String[] args) {
		String nomeArquivo = null;
		FTPClient ftp = new FTPClient();
		try {
			ftp.connect("ftp.bla.com.br");

			// verifica se conectou com sucesso!
			if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
				ftp.login("user", "pwd");
			} else {
				// erro ao se conectar
				ftp.disconnect();
				System.out.println("Conexão recusada");
				System.exit(1);
			}

			File f = new File("C:\\backups\\backup11");
			ftp.changeWorkingDirectory("//public_html//BDBACKUP");
			System.out.println("diretorio: "+ftp.printWorkingDirectory());
			// para cada arquivo
			for (File file : f.listFiles()) {

				// abre um stream com o arquivo a ser enviado
				InputStream is = new FileInputStream(file);
				// pega apenas o nome do arquivo
				int idx = file.getName().lastIndexOf(File.separator);
				if (idx < 0)
					idx = 0;
				else
					idx++;
				nomeArquivo = file.getName().substring(idx, file.getName().length());

				// ajusta o tipo do arquivo a ser enviado
				if (file.getName().endsWith(".txt")) {
					ftp.setFileType(FTPClient.ASCII_FILE_TYPE);
				} else if (file.getName().endsWith(".jpg")) {
					ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
				} else {
					ftp.setFileType(FTPClient.ASCII_FILE_TYPE);
				}
				System.out.println("Enviando arquivo " + nomeArquivo + "...");
				System.out.println("Tamanho:" +file.length());
				System.out.println("Hora Inicio:" +GregorianCalendar.getInstance().getTime());
				// faz o envio do arquivo
				ftp.storeFile(nomeArquivo, is);
				System.out.println("Arquivo " + nomeArquivo
						+ " enviado com sucesso!");
				System.out.println("Hora Terminio:" +GregorianCalendar.getInstance().getTime());
			}

			ftp.disconnect();
			System.out.println("Fim. Tchau!");
		} catch (Exception e) {
			System.out.println("Ocorreu um erro: " + e);
			System.exit(1);
		}
	}
}


Pessoal estou com mesmo problema, alguém te a solução ???

Ajuda … help …

O meu problema era um um erro na hora de setar o filetype pra transferencia.

Da uma olhadinha ae…


ftp.setFileType

Puts era isso mesmo, eu descobri logo que começei a pesquisar sobre isso de tarde … ftp.setFileType(FTp.binary alguma coisa), só que o problema agora é outro … eu não consigo baixar arquivos … com o amoecode uma api paralela que consegui ele baixa normal … mais com a api do apache não baixa … deve ser alguma config porque mesmo com permissão total sempre da erro … de acesso negado …

se souber a solução da um toque …

fuiz

já verificou se vc ta setando user e pwd pra fazer a autenticacao?

vc ta acessando a pasta que vc tem permissao? Tipo, é essa a pasta que vc ta colocando no path pra logar?

flw.