• Publicidad

Envío de gif por FTP a un servidor

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Envío de gif por FTP a un servidor

Notapor enric73 » 2015-04-29 12:15 @552

Hola de nuevo, hacía tiempo que no consultaba por el foro.

El siguiente código conecta con un servidor externo, entra en un directorio, elimina ficheros gif y luego envía a esta carpeta vacía nuevos ficheros gif desde el ordenador.

Me encuentro que conecta con el servidor externo, elimina los gif y envía correctamente los gif en el primer directorio seleccionado. Posteriormente repito la misma operación pero en otro directorio.

El problema es el siguiente: No me selecciona el nuevo directorio, y envía el segundo paquete de ficheros gif al primer directorio otra vez.

¿En qué parte del código me equivoco?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl
  2.  
  3. use Class::Date qw(date now);
  4. use File::Path;
  5. use File::Copy;
  6. use DateTime;
  7. use BSD::Resource;
  8. use File::Copy;
  9. use Net::FTP;
  10.  
  11. my $username = "xxx";
  12. my $pwd      = "xxxx";
  13. my $file     = "rain*.gif";
  14. my $file2    = "wind*.gif";
  15. my $ftp      = Net::FTP->new( "xxx.xx.xxx.xxx", Debug => 0 ) or die("No se ha conectado el servidor: $!");
  16.  
  17. $ftp->login( $username, $pwd ) or die("Login incorrecto: $!");
  18.  
  19. # ACCIONES
  20. $ftp->cwd("html/pen/precipitation");
  21. foreach my $file ( $ftp->ls("rain*.gif") ) {
  22.     $ftp->delete($file) or die "Error in delete\n";
  23. }
  24. my @arxius = glob("/home/gif/Pen/rain*.gif");
  25. foreach my $File (@arxius) {
  26.     $ftp->binary();
  27.     $ftp->put("$File");
  28. }
  29.  
  30. $ftp->cwd("html/pen/wind");
  31. foreach my $file2 ( $ftp->ls("wind*.gif") ) {
  32.     $ftp->delete($file2) or die "Error in delete\n";
  33. }
  34.  
  35. my @arxius2 = glob("/home/gif/Pen/wind*.gif");
  36. foreach my $File (@arxius2) {
  37.     $ftp->binary();
  38.     $ftp->put("$File");
  39. }
  40.  
  41. $ftp->quit or die("No se ha desconectado del servidor: $!");
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
enric73
Perlero nuevo
Perlero nuevo
 
Mensajes: 154
Registrado: 2012-03-16 06:27 @311

Publicidad

Re: Envío de gif por FTP a un servidor

Notapor explorer » 2015-04-29 13:47 @615

El problema está en las líneas 20 y 30. Mejor dicho, en la 30.

Cuando se ejecuta la línea 20, el servidor FTP te "coloca" en el directorio que le estás indicando ("html/pen/precipitation"). Ahí es donde borras y colocas los gráficos.

El problema viene después en la línea 30, cuando le solicitas que cambie a otro directorio:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ftp->cwd("html/pen/wind");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Como ves, estás indicando una ruta relativa a la posición en la que te encuentras.

Eso quiere decir que le estás solicitando ir al directorio

html/pen/precipitation/html/pen/wind

y, me temo que no es eso lo que quieres hacer.

Tienes dos opciones: o indicar la ruta relativa correcta, o indicar una ruta absoluta.

En el primer caso, sería así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ftp->cwd("../../../html/pen/wind");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

En el segundo caso, sería así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ftp->cwd("/html/pen/wind");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Como ves, solo hemos añadido un '/' al principio.

Más información en la Wikipedia, en Ruta (Informática)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Envío de gif por FTP a un servidor

Notapor enric73 » 2015-05-05 07:25 @351

¡Muchas gracias, explorer!

Resuelto.
enric73
Perlero nuevo
Perlero nuevo
 
Mensajes: 154
Registrado: 2012-03-16 06:27 @311


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados