Problema com FTP

3 respostas
T

Ola a todos, sou novo aqui no fórum e estou com um problema em um sistema q estou desenvolvendo.

Peço desculpas se o assunto não é dessa área, mas o que acontece é o seguinte.

eu configurei uma funcionalidade para enviar arquivos .doc, .docx e .pdf para um servidor FTP, ele envia o arquivo mas o msm fica sem nenhum texto dentro dele

esse é o código da minha classe com os métodos para enviar e receber arquivos:

package ftp;

import java.io.;
import java.net.
;

import org.apache.commons.net.ftp.*;

public final class Ftp {

private static final String servidor = “”; ([color=red]PARA FINS DE PROTEÇÃO, ISSO É DA EMPRESA QUE UTILIZARÁ O SISTEMA[/color])

private static final String usuario = “”;

private static final String senha = “”;

private static FTPClient client = new FTPClient();
private static final void conectaFTP() {
	try {
		client.connect(servidor);
		client.login(usuario,senha);
	} catch (SocketException e) {
	} catch (IOException e) {}
}
private static final void disconectaFTP() {
	try {
		client.logout();
		client.disconnect();
	} catch (IOException e) {}
	
}

public static final int enviaArquivo(String caminho,String arq) {
	try {
		if(!caminho.startsWith("/")) {
			caminho = caminho.substring(2, caminho.length()); ([color=red]ISSO É PQ O SISTEMA PODE SER UTILIZADO TANTO EM WINDOWS QT OUTROS SO[/color])
			caminho = caminho.replace("\\", "/");
		}
		conectaFTP();
		FileInputStream arqEnviar = new FileInputStream(caminho+arq);
		if(client.storeFile(arq, arqEnviar)) {
			arqEnviar.close();
			disconectaFTP();
			return 1;
		}else {
			arqEnviar.close();
			disconectaFTP();
			return 0;
		}
	} catch (FileNotFoundException e) {
		return 0;
	} catch (IOException e) {
		return 0;
	}
}
public static final int recebeArquivo(String caminho,String arq) {
	try {
		if(!caminho.startsWith("/")) {
			caminho = caminho.substring(2, caminho.length());
			caminho = caminho.replace("\\", "/");
		}
		conectaFTP();
		FileOutputStream arqReceber = new FileOutputStream(caminho+arq);
		if(client.retrieveFile(arq, arqReceber)) {
			arqReceber.close();
			client.logout();
			client.disconnect();
			return 0;
		}else {
			arqReceber.close();
			disconectaFTP();
			return 1;
		}
	} catch (FileNotFoundException e) {
		return 1;
	} catch (IOException e) {
		return 1;
	}
}

}

Desde já agradeço a ajuda

3 Respostas

P

Experimenta forçar transferência binária:

client.setFileType(FTP.BINARY_FILE_TYPE);//

                InputStream input;

                input = new FileInputStream(local);

                client.storeFile(remote, input);

                input.close();
P
pcesar2013:
Experimenta forçar transferência binária:
client.setFileType(FTP.BINARY_FILE_TYPE);//modo texto seria: FTP.ASCII_FILE_TYPE

                InputStream input;

                input = new FileInputStream(local);

                client.storeFile(remote, input);

                input.close();
T

Muito obrigado cara funcionou

Criado 25 de maio de 2013
Ultima resposta 25 de mai. de 2013
Respostas 3
Participantes 2