2011-10-02 8 views
6

Per quanto posso leggere dal WWW::Mechanize documentation, è possibile effettuare le seguenti operazioni per inviare un file da una stringa:nome di file non corretto sul WWW :: Mechanize presentazione

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

Questo dovrebbe inviare un file con nome text2.txt, contenente il testo in $content (in questo caso, 'The file is a lie.').

Richiesta non riuscita con un errore interno del server, tuttavia, così ho esaminato la richiesta che è stato inviato, e abbiamo trovato questo:

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

The file is a lie. 
--xYzZY 

Questo non è chiaramente il nome del file ho specificato, quindi mi chiedo: Am I fare qualcosa di sbagliato, o il modulo è disturbato?

+0

Ho fatto una prova e mi ' filename = "ARRAY (0x1f124d8)" anche, scaricando '$ mech-> res' (' WWW :: Mechanize' 1.66). –

+0

Una chiave di "with_fields" invece di "campi" produce un risultato diverso? "with_fields" sarebbe d'aiuto se c'è più di un modulo e nessun modulo è stato selezionato. –

+0

'with_fields' ha dato lo stesso risultato di' fields'. –

risposta

2

Questo è un bug in HTML :: Form. L'ho riferito all'autore.

Nel frattempo, se avete HTML :: Modulo versione 6.00, è possibile sistemare le cose temporaneamente commentare la linea 1442 in HTML/Form.pm che recita

$old = $self->file unless defined $old; 
Problemi correlati