2011-10-02 16 views
6

O ile mogę odczytać z WWW::Mechanize documentation, można wykonać następujące czynności, aby przesłać plik z ciągiem:Nieprawidłowa nazwa pliku na WWW :: Mechanize złożenie

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

ten powinien przesłać plik z nazwą text2.txt, zawierający tekst w $content (w tym przypadku 'The file is a lie.').

Żądanie nie powiodło się z powodu błędu serwera wewnętrznego, jednak, więc rozpatrzyła wniosek, który został wysłany, i stwierdziliśmy:

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

The file is a lie. 
--xYzZY 

To oczywiście nie jest nazwa pliku I określony, więc zastanawiam się: Czy jestem robienie czegoś złego, czy moduł jest podsłuchiwany?

+0

Zrobiłem test i dostaje ' filename = "ARRAY (0x1f124d8)" 'too, przesyłając' $ mech-> res' ('WWW :: Mechanise' 1.66). –

+0

Czy klucz z "with_fields" zamiast "fields" daje inny wynik? "with_fields" pomogłoby, gdyby był więcej niż jeden formularz i nie wybrano żadnej formy. –

+0

'with_fields' dał taki sam wynik, jak' pola'. –

Odpowiedz

2

To jest błąd w HTML :: Form. Zgłosiłem to autorowi.

W tym czasie, jeśli masz HTML :: Form wersji 6.00, można naprawić rzeczy tymczasowo przez zakomentowanie linii 1442 w HTML/Form.pm który brzmi

$old = $self->file unless defined $old; 
Powiązane problemy