Clase para Transferencias por FTP

Iniciado por Debci, 2 Agosto 2009, 17:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Debci

Pensad que llevo cosa de 1 mes haciendo java por mi cuenta (Solo tengo 15 años  :P) asi que no sed severos conmigo, porque yo vengo del C++ y Bas5c xDD
Ahi va la clase, que usa un paquete externo gratuito y open source (edtFTP - http://www.enterprisedt.com/products/edtftpj/overview.html)


Código (java) [Seleccionar]

package ftp;

import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.FileTransferClient;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;

/**
*
* @author Debci
*Para elhacker.net
*/
public class Main {
   String host;
   String user;
   String pass;

   public Main(String host, String user, String pass) {
       this.host = host;
       this.user = user;
      this.pass = pass;
   }

  public static void main(String[] args) {
       //Tambien podemos especificar una IP :P
      Main datos_conexion = new Main("ip o servidor", "usuario", "contraseña");

       try{
           FileTransferClient ftp = new FileTransferClient();
          /**
            * Parametros de conexion
            */
           ftp.setRemotePort(21);
       ftp.setRemoteHost(datos_conexion.host);
           ftp.setUserName(datos_conexion.user);
          ftp.setPassword(datos_conexion.pass);
           ftp.connect();

         /**
           * Establecemos el modo de transferencia en Binario
           */
          ftp.setContentType(FTPTransferType.BINARY);

          /**
          * Para cambiar de directorio usamos el metodo changeDirectory
           */

           ftp.changeDirectory("porno, pelis verdes, hentai o el directorio que querais");
          ftp.setDetectContentType(true);

          /**
            * Vamos a subir un xploit o un troyano...
            */
          String file = "trojan.sh";
           File source = new File(file);

          OutputStream os = ftp.uploadStream(file);
          FileInputStream fis = new FileInputStream(source);

         long fin = source.length();
          long ini = 0;
         int x = 0;
          byte[] b = new byte[2048];

           while ((x = fis.read(b)) > 0) {
             ini+=x;
             os.write(b, 0, x);
             /**
                * Usaremos el cuarto proporcional o una regla de 3
             * para saber cuanto hemos subido y cuanto queda por bajar
                */
             System.out.println("El archivo ocupa: " + fin
                       + " - Subido: " + ini);
               System.out.println("Restante: "
                      + ((ini * 100) / fin) + "%");
          }

          os.close();
           fis.close();
/**
*Cerramos la conexión correctamente
*/
           ftp.disconnect();
/**
*Atrapamos la exepción que se peuda producir y la soltamos
*/
      }catch(Exception e){
           e.printStackTrace();
      }catch(IOExeption e2){
          e2.printStackTrace();
}
   }
}


He usado algunos metodos y clases que he encontrado pro ahi para hacer este Metodo.

Saludos  :D

Pablo Videla

 :o  15 años solamente y aprendiste java solo  ;-), voy a probar la clase a ver que tal, gracias por compartir  ;D

Debci

esque la INFORMATICA, LA ELECTRONICA LA PROGRAMACIÓN... desde los 12 añitos  :P

saludos

Pablo Videla

Cita de: Debci en  2 Agosto 2009, 20:32 PM
esque la INFORMATICA, LA ELECTRONICA LA PROGRAMACIÓN... desde los 12 añitos  :P

saludos
http://www.enterprisedt.com/products/edtftpj/choose.html por lo que vi ahi , con la libreria gratuita no se podria subir directorios  :-\ , pero igual se agradece , es cosa de hacerlo de otra manera  :P

Debci

si quieren pagar por la otra... busquen los mtodos y prou, y podran subir directorios, lo que se podria hacer es modificaar la gratuita para ue se peudan directorios, todo es cuestion de analizarlo.

saludos