2011-03-17 81 views
5

usando el código java en Windows Necesito descargar varios archivos de un directorio ubicado en un servidor. esos archivos en el servidor se generan por separado. así que no sabré el nombre de esos archivos. ¿Hay alguna forma de descargarlo usando JAVA y guardarlo en una carpeta específica?código java para descargar un archivo del servidor

estoy usando apache tomcat.

He leído todos los demás hilos relacionados con la descarga de archivos java. Pero ninguno de ellos satisface mi requerimiento.

Respuesta

2

Uso java.net.URL y java.net.URLConnection clases.

2

Solo es posible si el servidor enumera los contenidos del directorio. si lo hace, su puede hacer una petición HTTP a:

http://server:port/folder

que le daría lista de archivos.

Una vez que tenga eso, puede descargar archivos individuales analizando la salida si esta solicitud http.

8
try { 
     // Get the directory and iterate them to get file by file... 
     File file = new File(fileName); 

     if (!file.exists()) { 
      context.addMessage(new ErrorMessage("msg.file.notdownloaded")); 
      context.setForwardName("failure"); 
     } else { 
      response.setContentType("APPLICATION/DOWNLOAD"); 
      response.setHeader("Content-Disposition", "attachment"+ 
            "filename=" + file.getName()); 
      stream = new FileInputStream(file); 
      response.setContentLength(stream.available()); 
      OutputStream os = response.getOutputStream();  
      os.close(); 
      response.flushBuffer(); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (stream != null) { 
      try { 
       stream.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

Espero que tengas una idea ...

1

Si se trata del servidor, entonces el proceso debe ser como el uso de las credenciales FTP que tiene que dosnload los archivos. Este java file download example puede ayudarlo.

2

Hola puede utilizar este fragmento de código siguiente para bajar el archivo directamente:

URL oracle = new URL("http://www.example.com/file/download?"); 
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream())); 

    String inputLine; 
    while ((inputLine = in.readLine()) != null) 
     System.out.println(inputLine); 
    in.close(); 

refieren amablemente sobre openStream en esta [URL]: http://docs.oracle.com/javase/tutorial/networking/urls/readingURL.html

Cuestiones relacionadas