为什么我使用 Perl 的 LWP 下载图像时会得到错误大小的文件?
我正在尝试使用 Perl 从 HTTP 服务器获取图像。
我有该文件的完整 URL,并且正在尝试使用
my $data = LWP::Simple::get $params{URL};
my $filename = "image.jpg";
open (FH, ">$filename");
print FH $data;
close (FH);
Now,从逻辑上讲,至少对我来说,这应该可行。 但这些文件的大小略有不同,我不明白为什么。
帮助!
I am trying to get an image from an HTTP server using Perl.
I have the full URL of the file and am attempting to use
my $data = LWP::Simple::get $params{URL};
my $filename = "image.jpg";
open (FH, ">$filename");
print FH $data;
close (FH);
Now, logically, to me at least, this should work. But the files are slightly different sizes, and I can't work out why.
Help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
binmode
将图像数据正确写入磁盘。否则它会被解释为文本,并且换行符会被破坏。
You need to use
binmode
to properly write the image data to disk.Otherwise it is interpreted as text, and the newlines get munged.
戴夫是对的,您应该/必须将文件句柄设置为二进制模式。 但你可以一次性完成所有这些:
Dave is right, you should/must set your file handle to binary mode. But you could do all that in one go: