7

我正在尝试使用 Perl 从 HTTP 服务器获取图像。

我有文件的完整 URL 并尝试使用

my $data = LWP::Simple::get $params{URL};
my $filename = "image.jpg";
open (FH, ">$filename");
print FH $data;
close (FH);

现在,从逻辑上讲,至少对我来说,这应该可行。但是文件的大小略有不同,我不知道为什么。

帮助!

4

2 回答 2

14

您需要使用binmode正确地将图像数据写入磁盘。

my $data = LWP::Simple::get $params{URL};
my $filename = "image.jpg";
open (FH, ">$filename");
binmode (FH);
print FH $data;
close (FH);

否则它将被解释为文本,并且换行符会被删除。

于 2009-05-29T15:06:37.057 回答
13

戴夫是对的,您应该/必须将文件句柄设置为二进制模式。但是你可以一次性完成所有这些:

LWP::Simple::getstore( $params{URL}, 'image.jpg' );
于 2009-05-29T15:14:07.463 回答