Copiar Archivos Cliente Servidor

941 views
Skip to first unread message

NEMESYS

unread,
Nov 24, 2009, 8:22:22 AM11/24/09
to JavaSOS
buenos dias a todos, estoy buscando la forma de copiar archivos desde
cualquier pc cliente a mi servidor.
he probado con socket pero no me funciona tal vez si exista alguna
libreria o algo que ya haga estas cosas en donde uno le de los
parametros necesarios como ser usuario contraseña y demas.
haber si me pueden dar una mano en esto colegas, gracias por adelantado

Roberto Capone

unread,
Nov 24, 2009, 8:56:40 AM11/24/09
to jav...@googlegroups.com
¿Probaste con FTP?
Espero te sirva,

Beto

2009/11/24 NEMESYS <moramar...@hotmail.com>

Marcelo Mora Miranda

unread,
Nov 24, 2009, 10:19:21 AM11/24/09
to jav...@googlegroups.com
mil disculpas mi aplicacion es de escritorio no web, y funciona solo a nivel local, no se si influya algo en esto.


Date: Tue, 24 Nov 2009 10:56:40 -0300
Subject: [JavaSOS] Re: Copiar Archivos Cliente Servidor
From: rca...@gmail.com
To: jav...@googlegroups.com

Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! Try it!

Santiago Risaro

unread,
Nov 24, 2009, 10:35:25 AM11/24/09
to jav...@googlegroups.com
Pero via FTP podés enviar archivos igual, sin importar si la aplicación es web, solo necesitas un FTPServer corriendo en tu servidor...

2009/11/24 Marcelo Mora Miranda <moramar...@hotmail.com>

Alberto M. Vernieri

unread,
Nov 24, 2009, 10:37:03 AM11/24/09
to jav...@googlegroups.com
Hola!

Se puede perfectamente utilizar FTP en una red local, sin necesidad de salir a Internet...

El único requerimiento es que en el servidor esté corriendo un server FTP.

Tambien se pueden usar los métodos de la clase File, accediéndolos por URI... Pero eso implica hacer todo el trabajo "a mano"...

Saludos
--------------------------------------------------------
Alberto
"It is no measure of health to be well adjusted to a profoundly sick society." - J Krishnamurti

2009/11/24 Marcelo Mora Miranda <moramar...@hotmail.com>
mil disculpas mi aplicacion es de escritorio no web, y funciona solo a nivel local, no se si influya algo en esto.

Marcelo Mora Miranda

unread,
Nov 24, 2009, 11:04:57 AM11/24/09
to jav...@googlegroups.com
parece que esta sencilla la cosa no, pues a mi me esta costando un poquito, sera q no tienen un ejemplito por ahi o algun tutor paso a paso, si no es mucho pedir?.




Date: Tue, 24 Nov 2009 12:37:03 -0300
Subject: [JavaSOS] Re: Copiar Archivos Cliente Servidor

Santiago Risaro

unread,
Nov 24, 2009, 11:11:30 AM11/24/09
to jav...@googlegroups.com
En el link que te pasó Roberto hay varios ejemplos, también podés probar la API de apache para hacer FTP (http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTPClient.html)

Saludos

no name no name

unread,
Nov 24, 2009, 12:05:27 PM11/24/09
to jav...@googlegroups.com
Hola amigo entre aqui
http://publicajava.blogspot.com/2009/01/acceder-un-ftp-con-jakarta-commons-net.html

allil explica bien cualquier cosa

añademe a tu msn diego_e...@hotmail.com   y te puedo ayudar o dar una mano en lo q nesesitas
io ise una aplicacion ace un tiempo para ftp

Marcelo Mora Miranda

unread,
Nov 25, 2009, 1:37:11 PM11/25/09
to jav...@googlegroups.com
hola que tal, pues mira que vi esa pagina pero me sale este error

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
 y no se que pueda ser, sera que debo habilitar algo mas de windows??, por que por socket me parece q pasaba lo mismo, conecta solo un segundo y despues se corta, por que me copiaba un archivo pero a medias (no son archivo grandes no mas de 5 MB), por decir mi archivo es de 2.245 KB y solo me copia 2 KB en algunos casos 1KB. alguna sugerencia??
gracias por tu tiempo


Date: Tue, 24 Nov 2009 18:05:27 +0100

Subject: [JavaSOS] Re: Copiar Archivos Cliente Servidor

Explore the seven wonders of the world Learn more!

no name no name

unread,
Nov 25, 2009, 2:37:15 PM11/25/09
to jav...@googlegroups.com
hola colega
esta libreria io la estoy usando con oracle como un java  aqui le mando el EJEMPLO
ESE ES MI CODIGO

RECUERDA ATACHAR LOS 2 PAQUETES org.apache.oro Y org.apache.commons.



import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.String;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.oro.text.awk.*;


public class SwGetDataFiles {


    public static void main(String[] args) {

   
  
   
   

          String v_error="";   
        
     
          String server   = "ip_ftp";  //Direccion ip del ftp
          String username = "user";        //usuario
          String password = "pasword";          //pasword
          String destinationFolder = "C:\\FOLDER_DONDE_C_BAJAN_LOS_ARCHIVOS\\";  //folder destino donde se copiaran los datos remotos      
         String folder = "/DIR_1/_DIR_34/";              //folder remoto donde se encuentran los datos a transferir
         String folderBackup = "/DIR34/DIR_BACKUP/";
    
    FTPClient  ftp=null;  
    FTPClient ftp2=null;
       try
       {
         // Connect and logon to FTP Server
          
       
         ftp = new FTPClient();
         ftp2 = new FTPClient();
        
         ftp.connect(server,21);        
         ftp.login( username, password );        
         ftp.enterLocalPassiveMode();
         ftp.setFileType(FTP.ASCII_FILE_TYPE); ///// s eañadio nuevo        
          
         ftp2.connect(server,21);        
         ftp2.login( username, password );        
         ftp2.enterLocalPassiveMode();
         ftp2.setFileType(FTP.ASCII_FILE_TYPE); ///// s eañadio nuevo 
     
     
         System.out.println("Connected to " + server + ".");   
        
         System.out.print(ftp.getReplyString());        
         // List the files in the directory
         System.out.println("cambiando de directorio DE AMBOS");
         ftp.changeWorkingDirectory(folder);
         ftp2.changeWorkingDirectory(folderBackup);
         System.out.println("cambiando de directorio listo:"+ftp.printWorkingDirectory());
         System.out.println("cambiando de directorio BACUP listo:"+ftp2.printWorkingDirectory());
                   
         FTPFile[] files=null;
           files = ftp.listFiles(); // Obtiene los archivos del servidor y los mostramos
   
  
                boolean status;
            for( int i=0; i<files.length; i++ )
            {
                 System.out.println(files[i].isFile());
                 if (files[i].isFile() ) {
                    System.out.println("Nombre del archivo "+files[i].getName());
                                      
                   
                  // carga el archivo a copiar en el stream
                  InputStream ios = ftp.retrieveFileStream(files[i].getName());      
                 
                  // graba el archivo en el ftp de backup 
                  status = ftp2.storeFile(files[i].getName(), ios);
                  System.out.println("put file-status:" +status);
                  boolean commandOK=ftp.completePendingCommand();
                  System.out.println("pending cmd complete-status egatedev:" +commandOK);
                  ios.close();
                   
                // verifica si lo movio como backup
                // de se asi, lo descarga a a una carpeta local C://CarpetaLocal para procesarlo en la base de datos
                if  (commandOK)
                {  System.out.println("comando ok = true, grabando en local");                 
                    File file = new File( destinationFolder + File.separator + files[ i ].getName().replace('-','_') );                                    
                    FileOutputStream fos = new FileOutputStream( file );    
                    // graba el archivo en la carpeta local
                    boolean copiadoOK = ftp.retrieveFile( files[ i ].getName(), fos );
                    fos.close();
                   
                    // si lo copia en el servidor de backup
                    // lo elimina
                    System.out.println("copiadoOK: "+copiadoOK);
                    if (copiadoOK)
                    {   ftp.deleteFile(files[i].getName());}
                   }
 
            
                };              
            }
               
           
             System.out.println("ok");

            ftp.logout();
             ftp2.logout();
 
                
     
         }
         catch(IOException ioe)    { v_error =  "IOException error ftp: "+ioe.getMessage();
                                     ioe.printStackTrace();}
         catch( Exception e )      {v_error =  "Exception error ftp: "+e.getMessage();  }

         finally
            {
               if(ftp.isConnected())
                {
                 
                  try{
                  ftp.disconnect();                     
                  ftp2.disconnect();
                  }
                  catch(IOException ioe1)    { v_error = "error de ftp, al desconexion:"+ioe1.getMessage();}
                 
                 }
              }
    
         System.out.println(v_error);
   
     
     }
    
    
    }
   





ESE ERROR Q TE SALE AMI TAMBIEN ME SALE.... PERO AMI SI ME DESCARGA TODOS LOS ARCHIVOS
ESTE PROCESO IO LO UTILIZO CON UN JOB DE ORACLE Q SE EJECUTA CADA 3 MINUTOS

CUALQUIER COSA PUEDE PREGUNTARME

SLDS

Marcelo Mora Miranda

unread,
Nov 25, 2009, 4:35:52 PM11/25/09
to jav...@googlegroups.com
como va colega pues no se q estoy haciendo mal, solo copie y pegue este codigo y cambie las claves e IP necesarias y me sale este error

java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:168)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:254)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    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:595)
Exception in thread "main" java.lang.NullPointerException
    at org.apache.commons.net.telnet.TelnetClient.disconnect(TelnetClient.java:125)
    at org.apache.commons.net.ftp.FTP.disconnect(FTP.java:397)
    at org.apache.commons.net.ftp.FTPClient.disconnect(FTPClient.java:590)
    at ftp.SwGetDataFiles.main(SwGetDataFiles.java:121)

ah y las librerias q adicione son
commons-net-1.4.1.jar y jakarta-oro-2.0.8.jar, y ya te agregue al msn.


Date: Wed, 25 Nov 2009 20:37:15 +0100

Connect to the next generation of MSN Messenger  Get it now!

no name no name

unread,
Nov 25, 2009, 4:39:58 PM11/25/09
to jav...@googlegroups.com
aqui muy bien colega, trabajando para un software para unas pocket pc

bueno ese error me salia tambien a ami... pero como eso lo ejecuto en un job... alla no me da problema

eso si no sabria que decirle en ese caso... ps estube investigando y no encontre nada

trate de ejecutarlo varias veces, asta q c conecte... asi io asia en las pruebas dircta desde java

lo ejecutaba varias veces asta q c conectaba

si logra encontrar algo en la web me avisa

slds

Santiago Risaro

unread,
Nov 26, 2009, 12:04:41 AM11/26/09
to jav...@googlegroups.com
¿no tendrás alguna regla del firewall activada?

2009/11/25 Marcelo Mora Miranda <moramar...@hotmail.com>

Marcelo Mora Miranda

unread,
Nov 26, 2009, 7:13:52 AM11/26/09
to jav...@googlegroups.com
estoy probando en 2 pc´s, una como mi servidor y otra como mi cliente, ambas tienen el firewall desactivado, pienso q  desactivando, pues se desactiva todo y no incluye niguna regla o algo por el estilo, de todas formas verificare, gracias por la idea.


From: nri...@gmail.com
Date: Thu, 26 Nov 2009 02:04:41 -0300

Subject: [JavaSOS] Re: Copiar Archivos Cliente Servidor

Get news, entertainment and everything you care about at Live.com. Check it out!

El Santo B+

unread,
Nov 26, 2009, 8:47:23 AM11/26/09
to JavaSOS
Antes de seguir dando soluciones estaria bueno entender porque
necesitas copiar los archivos, en que ambiente necesita realizar ser
realizada esta tarea, sistemas operativos, etc.

Tambien te cuento que en una ocacion realice algo muy simlimar para
mantener un backup de archivos, como el equipo que tenia los archivos
estaba bajo windows simplemente accedi a la carpeta compartida de
windows usando una libreria para java y luego se trabaja como si
fueran otro directorio de la misma pc.

Slds,
Pablo.-

Marcelo Mora Miranda

unread,
Nov 26, 2009, 10:00:37 AM11/26/09
to jav...@googlegroups.com
tienes razon amigo, ahi va la explicacion:
el SO es Windows XP, el IDE JDeveloper 10g mi gestor de base es Oracle, este sistema es un sistema de archivos, en el q en mi servidor se almacenara la documentacion(de cualquier tipo: xls. doc, pdf, shp,.... ordenadas segun sistema) de cada socio de la empresa, el usuario adicionara esta documentacion en una ventana de interfaz y con darle "guardar", pues estos datos, incluyendo la imagen deben guardarse en el servidor, la imagen en una carpeta, no en la base de datos (si hago esto, mi base seria demasiado grande), ademas si es posible crear la carpeta si no existiese y guardar el archivo en la misma.
ya he podido hacerlo conectando en mi cliente una unidad de red de mi servidor, al momento de guardar datos mi aplicacion java conecta la unidad de red, guarda los archivos necesarios y la desconecta nuevamente, pero para esto debo tener una unidad compartida ademas q se debe dar acceso de adicionar, borrar, modificar, osea todo, y ahi esta el problema, que pasa si un usuario dañino (q no faltan) entra a la red y por desgracia pilla esta documentacion, ........, bueno eso lo dejo a su imaginacion q podria hacer con la documentacion.
bueno, espero que se haya entendido, y mi problema tenga solucion, gracias de antemano

> Date: Thu, 26 Nov 2009 05:47:23 -0800

> Subject: [JavaSOS] Re: Copiar Archivos Cliente Servidor

no name no name

unread,
Nov 26, 2009, 10:20:29 AM11/26/09
to jav...@googlegroups.com
Buenos dias colegas... en el caso mio lo utilic asi
ya q yo lo utilizo para cargar archivos .csv o .txt solament y los descargo de un servidor ftp linux, y esos archivos son generados de manera automatica desde un dispositivo (palm)...practicament no existe intervencion del usuario manualment.

amigos y colegas me alegra y espero q cada uno comparta o ayudemonos en los diferentes problemas de desarrollo

slds

Diego Guerra
Security International
Oracle & Java Software Developers
Reply all
Reply to author
Forward
0 new messages