Envio de Arquivo via FTP

4 respostas
I

Olá,

Estou fazendo o envio de ACCESSS (*.mdb) via FTP, e o arquivo enviado fica inválido, devido ao seu tamanho exceder 20 MB.

Alguém sabe como posso enviar o arquivo, sem que o mesmo seja corrompido?

Segue código abaixo:

public void enviarBD(File file, String enderecoFTP, String login, String senha) {
        String nomeArquivo = null;  
        FTPClient ftp = new FTPClient();  
        try {  
            ftp.connect( enderecoFTP );  

            //verifica se conectou com sucesso!  
            if( FTPReply.isPositiveCompletion( ftp.getReplyCode() ) ) {  
                ftp.login( login, senha );  
            } else {  
                //erro ao se conectar  
                ftp.disconnect();  
                System.out.println("Conexão recusada!"+ newline);  
                System.exit(1);  
            }  
              
            //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  
            ftp.setFileType( FTPClient.ASCII_FILE_TYPE );  
            System.out.println("Enviando arquivo "+nomeArquivo+"..."+newline);  
              
            //faz o envio do arquivo  
            ftp.storeFile( nomeArquivo, is );
            System.out.println("Arquivo "+nomeArquivo+" enviado com sucesso!"+newline);
            
            ftp.disconnect();  
        } catch( Exception e ) {  
        	System.out.println("Erro ao enviar o arquivo!"+newline);
        	System.out.println("Erro: " + e + newline);  
            System.exit(1);  
        }  
    }

Agradecido

4 Respostas

E

Isso irá fatalmente corromper o arquivo. Use o modo de transmissão BINÁRIO (por favor, veja a sua documentação para ver qual é a constante correspondente. Deve ser algo como BINARY_FILE_TYPE mas por favor confira sua documentação.

I

Já fiz os testes utilizando o type BINARY_FILE_TYPE, e ocorreu o mesmo erro!

Tem alguma outra sugestão?

Outra coisa

Vc se refere a documentação dos types existentes?

Testei todos os tipos e ocorreu o mesmo erro!

P

Cara, comigo acontecia isso, mas era problema no meu server, pois quando passava determinada quantidade de tempo, ele fechava a conexão.

Espero ter ajudado.

L

Precisa necessariamente ser FTP? Não poderia ser um serviço seu em RMI?

Criado 29 de julho de 2010
Ultima resposta 31 de jul. de 2010
Respostas 4
Participantes 4