• Publicidad

Can't use an undefined value as a HASH reference at

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Re: Can't use an undefined value as a HASH reference at

Notapor explorer » 2015-06-21 11:09 @506

Sí, el ejemplo es el de la página 108.

El problema está en que no vemos el código HTML en que se basa ese ejemplo (figura 4.2). Solo dice que está basado en el formulario de la figura 4.1, que a su vez ha sido generado mediante otro código cgi.

Suponiendo que tú no estás usando ese código generado, y que en su lugar estás usando un formulario HTML aparte, que es el que nos muestras en el segundo listado, entonces el error está en el propio código HTML: no estás indicando el método de codificación en que los datos van a subir al servidor, dentro del formulario.

Tienes que cambiar la línea del <form> por esta otra:
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <form method="POST" action="imprime.pl" enctype="multipart/form-data">
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Hemos agregado el atributo 'enctype'. Sin él, no sube ningún dato (no hay 'upload'), por lo que uploadinfo() siempre devolvía nulo, y de ahí el error que veías.

En el cgi, hacemos un pequeño cambio para que el programa admita todo tipo de archivos, y así ver el tipo MIME del archivo que pretendemos subir:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use CGI qw(:standard);
  4.  
  5. my $q=new CGI;
  6. my $filename = $q->param('uploaded_file');
  7. my $contenttype= $q->uploadInfo($filename)->{'Content-Type'};
  8.  
  9. print header;
  10. print start_html;
  11.  
  12. print "El tipo es de $contenttype\n";
  13.  
  14. print end_html;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Solo hemos quitado un if(), pues queremos que nos responda en todos los tipos de archivos que subamos.

Lo he dejado funcionando en http://joaquinferrero.com/upload.html
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14485
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Can't use an undefined value as a HASH reference at

Notapor HIRONAKAMURA » 2015-06-21 11:55 @538

Gracias. Funcionó correctamente al colocar esa parte en el formulario. :D

El libro que menciono me parece muy bueno. Sin embargo, me parece de un nivel más o menos avanzado. Omite muchas cosas como la instalación y configuración del servidor (específica que se usará Apache solamente). Y supone que el lector ya conoce sobre programación web en Perl.
Avatar de Usuario
HIRONAKAMURA
Perlero nuevo
Perlero nuevo
 
Mensajes: 20
Registrado: 2013-04-23 15:19 @680
Ubicación: México

Anterior

Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado