背景
我正在网络论坛上试验Mechanize。该论坛在其主题中有一些文件附件。附件可以是各种媒体类型。每个附件都有一个指向名为“attachment.php?”的服务器端程序的链接。以及标识文件的唯一ID。当您在普通浏览器中访问它时,将返回一个文件,浏览器将决定如何处理它。如果是图像,则文件显示在浏览器窗口中,标题栏设置为文件名。如果是另一种类型的文件,浏览器会询问您是否要下载文件(并自动将文件名设置为文件名)。
问题
我的问题是如何使用Mechanize探索此类文件附件的详细信息,以便确定文件类型和文件名? 我已经使用我的程序成功下载了一个文件,但我必须告诉Mechanize文件名应该是什么。我宁愿保留原始文件名,但要做到这一点,我必须能够以某种方式发现它。我知道可以这样做,因为我的浏览器能够确定文件类型和文件名。 作为次要目标,我还想查询文件的大小,如果可能的话。
我希望我的问题有道理,并提前感谢任何花时间回答的人。
答案 0 :(得分:1)
要检查文件类型,必须使用$mech->res()
。它返回一个HTTP::Response对象,该类提供filename
方法。
示例:
foreach (@media)
{
print "Fetching " . $_->url() . "\n";
$m->get($_);
my $res = $m->res();
if($res->is_success)
{
my $filename = $res->filename();
print "$filename\n";
}
}