Pessoal bom dia, implementei uma funcionalidade de upload de arquivos, onde o usuario escolhe um arquivo em sua máquina e a “joga” para o servidor ftp.
Está funcionando normal, mas o problema é que seu desempenho está muito a baixo do que eu esperava, tipo, um arquivo com 1.53 MB esta demorando quase 10 min para ser finalizado o envio. Tem alguma forma ou classe que posso trabalhar para melhorar este desempenho, ou seja, ter um ganho de velocidade?
segue abaixo código
[code]public class ServidorFTP {
private String servidor = "Francatalogos FTP";
FTPClient ftp = new FTPClient();
FTPClientConfig config = new FTPClientConfig();
public void inicia(String localArquivo, String nomePasta, String nomeArquivo) {
ftp.configure(config);
try {
int responder;
//Conecta e loga no FTP
ftp.connect("ftp.francatalogos.com.br");
ftp.login("francatalogos", "******");
System.out.print(ftp.getReplyString());
responder = ftp.getReplyCode();
ftp.enterLocalActiveMode();
ftp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
//Obtem o local do arquivo
FileInputStream file = new FileInputStream(localArquivo);
//Verifica se o caminho/pasta não existe.
//seta o caminho no qual o servidor irá trabalhar
boolean isDirectory = ftp.changeWorkingDirectory("T&TSistemas/" + nomePasta);
if (!isDirectory) {
ftp.makeDirectory("T&TSistemas/" + nomePasta);
}
ftp.changeWorkingDirectory("T&TSistemas/" + nomePasta);
File f = new File(localArquivo);
nomeArquivo = f.getName();
salvaArquivo(nomeArquivo, file);
if (!FTPReply.isPositiveCompletion(responder)) {
ftp.disconnect();
JOptionPane.showMessageDialog(null, "Não foi possível conectar a " + servidor + ".");
System.exit(1);
}
ftp.logout();
} catch (IOException io) {
io.printStackTrace();
JOptionPane.showMessageDialog(null, "Erro ServidorFTP" + io);
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
System.out.println("Desconectado !");
} catch (IOException io) {
}
}
}
}
private void salvaArquivo(String nomeArquivo, FileInputStream file) throws IOException {
//Verifica se o arquivo foi salvo(storeFile).
if (ftp.storeFile(nomeArquivo, file)) {
JOptionPane.showMessageDialog(null, "Arquivo armazenado com sucesso.");
} else {
JOptionPane.showMessageDialog(null, "Não foi possível armazenar o arquivo.");
ftp.logout();
ftp.disconnect();
}
}
}[/code]
