2011-10-02 29 views
6

據我可以從WWW::Mechanize documentation閱讀,你可以做以下從字符串提交文件:WWW上不正確的文件名::機械化提交

$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 

這顯然不是我指定的文件名,所以我不知道:我是做錯了什麼,或者模塊被竊聽?

+0

我做了一個測試,並得到了'註釋掉線1442暫時解決的事情filename =「ARRAY(0x1f124d8)」'也是傾銷'$ mech-> res'('WWW :: Mechanize' 1.66)。 –

+0

「with_fields」而不是「字段」的關鍵字會產生不同的結果嗎?如果有多個表單並且沒有選擇表單,「with_fields」將有所幫助。 –

+0

'with_fields'給出了和'fields'相同的結果。 –

回答

2

這是HTML :: Form中的一個錯誤。我已經向作者報告過。

在此同時,如果你有HTML ::表版本6.00,您可以通過HTML/Form.pm讀取

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