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

Dave の言うとおりです。ファイル ハンドルをバイナリ モードに設定する必要があります。しかし、これらすべてを一度に行うことができます。

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