Неверное имя файла при отправке WWW::Mechanize

Насколько я могу прочитать из Документация WWW::Mechanize, вы можете сделать следующее, чтобы отправить файл из строки:

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

Это должно отправить файл с именем text2.txt, содержащий текст в $content (в данном случае, 'The file is a lie.').

Однако запрос не удался из-за внутренней ошибки сервера, поэтому я просмотрел отправленный запрос и обнаружил следующее:

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

The file is a lie.
--xYzZY

Это явно не то имя файла, которое я указал, поэтому я задаюсь вопросом: я делаю что-то не так или модуль глючит?


person Sebastian Paaske Tørholm    schedule 02.10.2011    source источник
comment
Я сделал тест и тоже получил filename="ARRAY(0x1f124d8)", сбросив $mech->res ( WWW::Mechanize 1.66 ).   -  person Marco De Lellis    schedule 02.10.2011
comment
Дает ли ключ with_fields вместо полей другой результат? with_fields поможет, если существует более одной формы и ни одна из них не выбрана.   -  person Richard Simões    schedule 03.10.2011
comment
with_fields дал тот же результат, что и fields.   -  person Sebastian Paaske Tørholm    schedule 03.10.2011
comment
@Oesor: я не уверен, что вы хотите, чтобы я написал вместо upload_field?   -  person Sebastian Paaske Tørholm    schedule 04.10.2011


Ответы (1)


Это ошибка в HTML::Form. Я сообщил об этом автору.

Тем временем, если у вас есть HTML::Form версии 6.00, вы можете временно исправить ситуацию, закомментировав строку 1442 в HTML/Form.pm, которая гласит:

$old = $self->file unless defined $old;
person Borodin    schedule 04.10.2011