• Publicidad

Upload de ficheros y parámetros GET

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Upload de ficheros y parámetros GET

Notapor dailosmm » 2006-09-26 10:41 @487

Hola a todos:

Estoy desarrollando un proyecto con macromedia Flash, y estoy haciendo con perl un script para subir ficheros mediante el método Filereference.upload() de actionscript.

Mi problema es que si quiero enviar algún parámetro además del fichero que quiero subir, tiene que ser adjuntándolo a la url, por tanto usando el método GET.

He estado buscando y no he encontrado solución para esta cuestión.

Otra duda que tengo es si habría posibilidad de averiguar el tipo MIME del fichero que estoy subiendo al servidor.

Muchas gracias de antemano y saludos a todos.
Dailos Medina
dailosmm
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-09-26 10:25 @476

Publicidad

Notapor explorer » 2006-09-26 11:21 @514

No entiendo por qué debes de usar GET. Podrías usar POST. Lo importante es que se use el enctype='multipart/form-data'. ¿Es que el ActionScript tiene esa limitación?

Te recomiendo una lectura del módulo CGI. Busca por 'Upload'. También, si buscas por 'mixing post' verás que se puede enviar formularios POST junto con parámetros en el URL.

En cuanto al MIME, hay varios módulos en Perl para deducirlo, pero casi todos lo que hacen es consultar la base de datos del programa 'file' que está en Linux/Unix.
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

limitaciones de flash

Notapor dailosmm » 2006-09-26 11:38 @526

Hola:

Muchas gracias por la rapidez de respuesta. Por desgracia, el método upload de la clase Filereference de flash, no permite envío de parámetros por el método post. Sólo puedes adjuntar a la url los parámetros. Te copio aquí un pequeño extracto de la documentación de este método:

Parameters

url:String - The URL of the server script configured to handle upload through HTTP POST calls. The URL can be HTTP or, for secure uploads, HTTPS.

You can send data to the server with the upload() call by appending parameters to the URL; for example, http://www.myserver.com/upload.cgi?userID=jdoe

On some browsers, URL strings are limited in length. Lengths greater than 256 characters may fail on some browsers or servers.



Por otro lado, me podrían guiar sobre qué módulos podría usar para localizar el tipo MIME, o donde podría localizar información sobre este tema. He visto que existe el módulo MIME, pero en todos los casos usado para el envio de correos, por lo que no se si me podría servir para el fin que yo busco.

Muchas gracias nuevamente por tu respuesta.
Dailos Medina
dailosmm
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-09-26 10:25 @476

Notapor explorer » 2006-09-26 11:57 @539

Según este enlace:
http://livedocs.macromedia.com/flash/8/ ... 02225.html

el envío de ficheros se hace, naturalmente, por medio de un POST. Lo que comenta de pasarle parámetros aparte es añadirles a la URL, como comentas, pero eso no es hacer un GET. Sigue siendo un POST pero la URL es 'más larga' de lo normal.

Bueno, pues la solución está donde te he dicho: abre la documentación del módulo CGI y busca por 'mixing post' y podrás acceder a ambos. Si tienes algún problema con las pruebas, dínoslo.

Curioso lo que ponen los comentarios a continuación. No dejes de leerles...
Última edición por explorer el 2006-09-26 12:05 @545, editado 1 vez en total
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

Notapor kidd » 2006-09-26 12:02 @543

Hola:

Si usas el Flash 8 puedes hacer upload de archivos usando la clase FileReference, aquí un tutorial con el código fuente:
http://www.flash-db.com/Tutorials/upload/

Ahora, después lo puedes integrar con Perl y aquí hay un tutorial que te muestra como subir archivos usando Perl:
http://perlenespanol.com/tutoriales/cgi ... hivos.html

Lógicamente que en vez del formulario en HTML sería con tu Flash.

Ahora para encontrar el MIME de los archivos como te decía explorer hay varios módulos, yo el que uso es es MIME::Types.


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor explorer » 2006-09-26 12:03 @544

Sobre el tema del MIME, aquí tienes un enlace al módulo File::MimeInfo
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

Contenido del fichero en variable

Notapor dailosmm » 2006-09-28 06:31 @313

Hola:

Muchas gracias por vuestras respuestas. Me han aclarado muchas dudas, pero todavia tengo algunas. Estoy intentando que el contenido binario del fichero que quiero subir, se almacene en una variable para luego guardarlo en la base de datos MySQL. Mi duda es como convertir directamente los datos del contenido a una variable. En mi codigo, lo he intentado de esta manera pero me da problemas, no se si estoy haciendo bien:

Código: Seleccionar todo
#!/usr/bin/perl

 use CGI;

 my $query = new CGI;
 
 my $key = $query->url_param("key");
 my $file = $query->param("Filedata");
 my $filedata = $query->upload("Filedata");

 my $content;
 #Transferimos byte por byte el archivo
 while (my $bytesread = read($filedata, my $buffer, 1024)) {
   $content .= $buffer;
 }


gracias por vuestra atención,
Dailos Medina
dailosmm
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-09-26 10:25 @476

Notapor explorer » 2006-09-28 10:34 @482

¿Y qué problemas te da?
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

Notapor dailosmm » 2006-09-28 12:27 @560

explorer escribiste:¿Y qué problemas te da?


Hola:

he revisado bien el proceso, y el fichero que puse arriba finalmente si funciona (el problema estaba en el script que descargaba el fichero) :P

Muchas gracias por tu ayuda, finalmente todo funciona.

Saludos
Dailos Medina
dailosmm
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-09-26 10:25 @476


Volver a Web

¿Quién está conectado?

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