2011-10-02 14 views
6

Por lo que se puede leer del WWW::Mechanize documentation, puede hacer lo siguiente para enviar un archivo de una cadena:nombre de archivo incorrecto en la WWW :: Mecanizar presentación

$mech->submit_form(
    fields => { 
     'UploadedFile' => [[ undef, 'test2.txt', Content => $content ], 1], 
    } 
); 

Esto debería enviar un archivo con el nombre text2.txt, que contiene el texto en $content (en este caso, 'The file is a lie.').

la solicitud con un error interno del servidor, sin embargo, así que examinó la solicitud que se envió, y se encontró lo siguiente:

--xYzZY 
Content-Disposition: form-data; name="UploadedFile"; filename="ARRAY(0x9567570)" 

The file is a lie. 
--xYzZY 

Eso no es claramente el nombre del archivo que se especifica, así que me pregunto: ¿Soy haciendo algo mal, o está el módulo con errores?

+0

hice una prueba y me ' filename = "ARRAY (0x1f124d8)" 'too, dumping' $ mech-> res' ('WWW :: Mechanize' 1.66). –

+0

¿La clave "with_fields" en lugar de "fields" arroja un resultado diferente? "with_fields" ayudaría si hay más de un formulario y no se ha seleccionado ningún formulario. –

+0

'with_fields' dio el mismo resultado que' fields'. –

Respuesta

2

Este es un error en HTML :: Form. Lo reporté al autor.

Mientras tanto, si usted tiene HTML :: Formulario de la versión 6.00, se puede arreglar las cosas temporalmente comentando la línea 1442 en HTML/Form.pm que dice

$old = $self->file unless defined $old; 
Cuestiones relacionadas