Pessoal, estou montando um projeto que tenho uma classe para cadastro de usuário, nesse cadastro eu tenho a opçao de adicionar fotos, eu pensei em fazer o upload de fotos para um servidor remoto via FTP.
achei umas classes para conexao, e bibliotecas do apache.
Os erros que eu tenho é que não consigo enviar nenhum arquivo para o servidor, eu peguei um da internet e testei, achei foi até aqui no fórum
“” O ENGRAÇADO É QUE DA SEMPRE O MESMO ERRO EM QUALQUER TESTE DE TRANSFERENCIA FTP (LN 9)
java.net.SocketException: Software caused connection abort: recv failed
a saida do netbeans
run:
Tentando conectar ao servidor noads.biz:21
Autenticando FTP...
Criando diretório: /
Entrando no diretório: /
-> Block transfer mode
-> Bin mode
Executando upload...
java.net.SocketException: Software caused connection abort: recv failed
Fechando sessão...
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:273)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at org.apache.commons.net.telnet.TelnetInputStream.__read(TelnetInputStream.java:114)
at org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream.java:535)
at java.lang.Thread.run(Thread.java:722)
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at org.apache.commons.net.telnet.TelnetClient._flushOutputStream(TelnetClient.java:77)
at org.apache.commons.net.telnet.TelnetOutputStream.flush(TelnetOutputStream.java:137)
at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
at java.io.BufferedWriter.flush(BufferedWriter.java:254)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:442)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:520)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:569)
at org.apache.commons.net.ftp.FTP.quit(FTP.java:781)
at org.apache.commons.net.ftp.FTPClient.logout(FTPClient.java:706)
at sistema.TransferenciaFTP.doUpload(TransferenciaFTP.java:57)
at sistema.TransferenciaFTP.main(TransferenciaFTP.java:68)
CONSTRUÍDO COM SUCESSO (tempo total: 6 segundos)
E A CLASSE
package sistema;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public class TransferenciaFTP {
public static boolean doUpload(
File file,
String host,
int port,
String dir,
String nome,
String username,
String password) {
InputStream in = null;
FTPClient ftp = new FTPClient();
try {
in = new FileInputStream(file);
System.out.println("Tentando conectar ao servidor " + host + ":" + port);
ftp.connect(host, port);
System.out.println("Autenticando FTP...");
ftp.login(username, password);
System.out.println("Criando diretório: " + dir);
ftp.makeDirectory(dir);
System.out.println("Entrando no diretório: " + dir);
ftp.changeWorkingDirectory(dir);
System.out.println("-> Block transfer mode");
ftp.setFileTransferMode(FTP.BLOCK_TRANSFER_MODE);
System.out.println("-> Bin mode");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
System.out.println("Executando upload...");
ftp.storeFile(nome, in);
System.out.println("Upload concluído");
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
try {
System.out.println("Fechando sessão...");
ftp.logout();
System.out.println("Desconectando...");
ftp.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
String filename = "D:\\a.txt";
doUpload(new File(filename), "noads.biz", FTP.DEFAULT_PORT, "/", filename, "tonelotos.xp3.biz", "********");
}
}