Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Fallo al subir imagen y transformarla a thumbnail Responder al tema
Nuevo tema


Página 1 de 1  [ 3 mensajes ] 
 
Nota 2006-11-08 23:06 @004

Perlero Nuevo
Registrado: 2005-10-06 06:36 @316
Ubicación: España
Mensajes: 50
Fallo al subir imagen y transformarla a thumbnail
Wenas amigos.

Haber si alguien me puede echar una mano con esta función pls

Me suelta el siguiente error cuando intento crear la imagen con el módulo GD

Citar:
error: Inappropriate ioctl for device at /var/www/redmundial/php/fotos.cgi line 125.


La subrutina que hace crea el thumb es la siguiente
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
sub recepcion_de_archivo{

  my $nombre_en_servidor = $FORM{file};
  my $dir = $conf->{image_path};
  $nombre_en_servidor = lc($nombre_en_servidor);
  $nombre_en_servidor =~ s/ /_/gi;
  $nombre_en_servidor =~ s!^.*(\\|\/)!!;
  my $ext;

  my $extension_correcta = 0;

  foreach (@{ $conf->{image_ext} }) {
    if($nombre_en_servidor =~ /\.$_$/i) {
      $extension_correcta = 1;
      $ext = $_;
      last;
    }
  }

  if($extension_correcta) {

    #Abrimos el nuevo archivo
    open (OUTFILE, ">$dir/$nombre_en_servidor") || die "No se puedo crear el archivo";
    binmode(OUTFILE); #Para no tener problemas en Windows

    #Transferimos byte por byte el archivo
    while (my $bytesread = read($FORM{file}, my $buffer, 1024)) {
      print OUTFILE $buffer;
    }

    #Cerramos el archivo creado
    close (OUTFILE);

    my $imagenPrinc;

    #linea 125
    if ($ext eq 'gif') { $imagenPrinc = GD::Image->newFromGif("$dir/$nombre_en_servidor") or die "error: $!"; }
    elsif ($ext eq 'jpg' or 'jpeg') { $imagenPrinc = GD::Image->newFromJpeg("$dir/$nombre_en_servidor") or die "error: $!"; }
    elsif ($ext eq 'png') { $imagenPrinc = GD::Image->newFromPng("$dir/$nombre_en_servidor") or die "error: $!"; }

    unlink("$dir/$nombre_en_servidor");

    #Checamos si se pudo leer correctamente la imagen
    if(defined($imagenPrinc)) {

      #Redimensionamos la imagen
      my ($thumb,$x,$y) = Image::GD::Thumbnail::create($imagenPrinc,300) or die "error: $!";

      my $nick = lc($FORM{nick});
      my $time = time();
      my $save = "$dir/";
      $save .= "$FORM{cat}";
      $save .= "/";
      $save .= "$nick";
      $save .= "-";
      $save .= "$time";
      $save .= ".png";

      # Salvamos el thumbnail
      open OUT, ">$save" or die "No se pudo salvar: $!";
      binmode OUT;
      print OUT $thumb->png;
      close OUT;
      print "<div align='center'>Gracias por enviar su foto</div><br>";
      print "<META HTTP-EQUIV=Refresh CONTENT='5; URL=http://www.redmundial.org/'>";
      exit;
    }
    else { die "error: $!"; }
  }
  else {
    print "<h1>Extension incorrecta</h1>";
    print "Sólo se reciben archivo con extension:";
    print join(",", @{ $conf->{image_ext} });
    print "<META HTTP-EQUIV=Refresh CONTENT='7; URL=http://www.redmundial.org/fotos.php?cmd=add'>";
    exit(0);
  }

}


Nota 2006-11-09 06:24 @308
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10250
Por lo que he podido ver, puede ser que GD no encuentra las librerías necesarias para leer ficheros GIF. El mensaje de error es del sistema, no de GD. Ha intentado abrir un fichero GIF y el sistema no sabe cómo tratarlo.

http://www.mewsoft.com/cgi-bin/forum/fo ... ng=English


Nota 2006-11-09 10:42 @487
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Hola:

Checa tu versión del módulo GD. Lo que sucede es que hubo un problema de copyright con el tipo de archivo .gif, pero se terminó solucionando y GD volvió a implementarlo, esto podría ser el problema que tienes.


Saludos

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Responder al tema  [ 3 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO