使用LWP下載可執行文件類型和內存中的響應,我能夠散列該文件。但是,我怎樣才能保存這個文件在我的系統?我想我在下面試着走錯了路。下載成功了,因爲我能夠正確生成哈希(我已經通過下載實際文件和比較哈希來進行雙重檢查)。perl保存lwp下載的文件
use strict;
use warnings;
use LWP::Useragent;
use Digest::MD5 qw(md5_hex);
use Digest::MD5::File qw(file_md5_hex);
use File::Fetch;
my $url = 'http://www.karenware.com/progs/pthasher-setup.exe';
my $filename = $url;
$filename =~ m/.*\/(.*)$/;
$filename = $1;
my $dir ='/download/two';
print "$filename\n";
my $ua = LWP::UserAgent->new();
my $response = $ua->get($url);
die $response->status_line if !$response->is_success;
my $file = $response->decoded_content(charset => 'none');
my $md5_hex = md5_hex($file);
print "$md5_hex\n";
my $save = "Downloaded/$filename";
unless(open SAVE, '>>'.$save) {
die "\nCannot create save file '$save'\n";
}
print SAVE $file;
close SAVE;
如果你想知道爲什麼我不能代替下載的一切,然後分析該文件夾的每個文件的哈希,其由於IM下載在一個循環中的所有這些文件。在每個循環中,我都會將相關源URL(發現此文件的位置)以及文件名和散列一起上傳到數據庫中。
非常感謝,但getstore()的缺點是該文件夾必須已經存在。當沒有文件/文件夾出現時,我感到震驚。 –