• Publicidad

Problemas con "Content-Type: image/jpeg\r\n", REQU

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Problemas con "Content-Type: image/jpeg\r\n", REQU

Notapor OzX » 2008-07-14 18:25 @809

Hi.
Primero que nada felicitar por gran foro¡
Bueno ya he estado casi un día entero para ver el porqué de mi problema o en qué me estoy equivocando... espero que me ayuden :=)

Quiero hacer un Programa en Perl claro, en donde uno pueda subir las imágenes automáticamente, vía Post. (es un Formulario el Upload)

Contenido del Post cuando subo una imagen:

Código: Seleccionar todo
-----------------------------2249721855655\r\n
Content-Disposition: form-data; name="upfile_0"; filename="idea_bulb_400.jpg"\r\n
Content-Type: image/jpeg\r\n
\r\n
ÿØÿà


Gracias a Request Common hice lo siguiente

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 $filename="paisaje.jpg";
 $contenido= $ua->request(POST $url, Content_Type => "form-data",Content=> [ name  => "upfile_0",filename => $filename])->as_string;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Pero no me funciona =/
Sobre el "error", no tengo idea por qué son varias partes el Upload.
1.) Se selecciona un SID al Upload.
(la URL del "Post" es:
http://www.URL.com/cgi-bin/uu_upload.pl?tmp_sid=907ba91e5bfcad95efb8767a3513b786


2.) Luego "redirecciona la imagen según el SID hacia otra carpeta, pero eso es un Post "Normal" y no tengo problemas con eso.

Sintáxis: [ Descargar ] [ Ocultar ]
  1. <meta name="robots" content="none"> 
  2. </head> 
  3. <body style="background-color: #EEEEEE; color: #000000; font-family: arial, helvetica, sans_serif;"> 
  4. <br> 
  5. <div align='center'> 
  6. <form name='redirect' method='post' action="http://www.URLcom/uu_finished.php?rnd_id=4JTEB3Vo"><input type='hidden' name='tmp_si 
  7. d' value="51b15faaeb060e9df502dfdae48bd3d7"><input type='hidden' name='temp_dir' value="/tmp/"></form><script language='javascript' typ 
  8. e='text/javascript'>document.redirect.submit()</script> 
  9. <br> 
  10. <!-- kak on line 375 --> 
  11. </div> 
  12. </body> 
  13. </html> 


¿Alguna idea de cómo hacer el Upload?
Código: Seleccionar todo
-----------------------------2249721855655\r\n
Content-Disposition: form-data; name="upfile_0"; filename="idea_bulb_400.jpg"\r\n
Content-Type: image/jpeg\r\n
\r\n
ÿØÿà


¡Saludos!
OzX
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-07-14 18:15 @802

Publicidad

Notapor OzX » 2008-07-14 18:29 @812

Encontré algo pero llego a una contradicción

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  my $file = "\paisaje.jpg";
  my $size = -s $file;
  my $data = ""; { local $/; open(FILE,"<$file") || die $!; binmode(FILE); $data = <FILE>; } close(FILE);
  my $req = HTTP::Request->new(POST => "$url");
  $req->content_length($size);
  $req->content_type("image/jpeg");
  $req->content($data);
  $contenido= $ua->request($req)->as_string;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


La imagen la pasa a binario, pero no sé cómo incorporar los demás datos.
Código: Seleccionar todo
name="upfile_0"; filename="idea_bulb_400.jpg"\r\n

¿Cómo insertar "name=upfile_0" y el nombre de la imagen?

Si ya "envío" la imagen en binario...
¿Y si envío estos dos datos del upload, name y filename, dónde dejo el contenido binario de la imagen $data?


:S:S:S:S:S:S:S:S
OzX
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-07-14 18:15 @802

Notapor explorer » 2008-07-14 18:45 @823

Bienvenido a los foros de Perl en Español, OzX.

Estás leyendo mal la imagen. Debes usar read().

En cuanto a la cabecera,creo que se puede cambiar con header();

Quizás te sea un pelín más fácil con HTTP::Request::Common.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor OzX » 2008-07-14 19:00 @833

Gracias, explorer, por la bienvenida.

Pero si uso read, ya tendré la información en una variable y todo OK.

Pero ¿cómo podría manejar lo de las cabeceras? porque de verdad se me ha hecho un lío.

Como posteé arriba, ocupé ese módulo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$filename="paisaje.jpg";
 $contenido= $ua->request(POST $url, Content_Type => "form-data",Content=> [ name  => "upfile_0",filename => $filename])->as_string;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Lo que no entiendo es dónde ingresar el $data, que es la imagen en binario, si nada más en el post tengo 2 variables, el name, que es fijo, (upfile_0), y filename, que es el nombre de la imagen.

¿Dónde debería ingresar $data? Esa es mi pregunta :D


¡Saludos!
OzX
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-07-14 18:15 @802

Notapor OzX » 2008-07-14 19:55 @871

Buscando y buscando llegué a esto.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  my $file = "\paisaje.jpg";
  my $size = -s $file;
  my $data = ""; { local $/; open(FILE,"<$file") || die $!; binmode(FILE); $data = <FILE>; } close(FILE);

 
  print "[1] URL :>: $url\n";
  $contenido= $ua->post($url,
                                [ "upfile_0" => ["$data" => "000_paisajes.jpg"]],
                                  "Content_Type" => "image/jpeg",)->as_string;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Creo que ya en cuanto a las cabeceras estoy bien, nada más, me falta bien ver eso de read().

saludos¡
OzX
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-07-14 18:15 @802

Notapor OzX » 2008-07-14 21:19 @929

Bueno ya lo solucioné, me demoré un día y medio
xD¿
jajajaja

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
        my $path = "./paisaje.jpg";
        my $file = "paisaje.jpg";
        my $req = POST($url,
       
                Content_Type => "form-data",
                Content => [upfile_0 => [$path,$file],],
                );
       
        my $contenido = $ua->request($req)->as_string;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Si no se entiende el form-data bien, se hace BIEN complicado.
OzX
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-07-14 18:15 @802


Volver a Intermedio

¿Quién está conectado?

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