【发布时间】:2011-11-29 10:41:06
【问题描述】:
据我所知WWW::Mechanize documentation,您可以执行以下操作从字符串提交文件:
$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
这显然不是我指定的文件名,所以我想知道:我做错了什么,还是模块出错了?
【问题讨论】:
-
我做了一个测试,也得到了
filename="ARRAY(0x1f124d8)",转储$mech->res(WWW::Mechanize1.66)。 -
“with_fields”键而不是“fields”键会产生不同的结果吗?如果有多个表单并且没有选择任何表单,“with_fields”会有所帮助。
-
with_fields的结果与fields相同。 -
这看起来非常类似于 LWP 基础字段提交 (c/f lwp.interglacial.com/ch05_07.htm)。提交
fields => {'UploadedFile' => [ undef, 'test2.txt', Content => $content ], upload_field => 1 },其中upload_field 是表单提交字段的名称,是否正常工作? -
@Oesor:我不确定你想让我写什么而不是
upload_field?
标签: perl www-mechanize