我想在Perl中編寫一個腳本,用於從網頁生成URL列表,而不是通過URL列表並下載鏈接的文件。Perl,解析鏈接下載名稱
的問題是,生成的URL的鏈接看起來像
www.example.com/download.php?file=Li9OaW50ZW5kby9ORVMvVVNBLzEwIFlhcmQgRmlnaHQuemlw
當我把這個鏈接在瀏覽器,它知道真正的文件名(即cards.zip),我不知道如何使用Perl。
我怎樣才能使用Perl鏈接的'真'文件名?
我想在Perl中編寫一個腳本,用於從網頁生成URL列表,而不是通過URL列表並下載鏈接的文件。Perl,解析鏈接下載名稱
的問題是,生成的URL的鏈接看起來像
www.example.com/download.php?file=Li9OaW50ZW5kby9ORVMvVVNBLzEwIFlhcmQgRmlnaHQuemlw
當我把這個鏈接在瀏覽器,它知道真正的文件名(即cards.zip),我不知道如何使用Perl。
我怎樣才能使用Perl鏈接的'真'文件名?
檢查標題,特別是Content-Disposition
。
Amadan說得對,只是露出我用來解決這個問題的代碼:
use LWP::UserAgent qw();
use LWP::Simple;
$url = 'http://www.example.com/download.php?file=Li9OaW50ZW5kby9ORVMvVVNBLzNEIEJhdHRsZXMgb2YgV29ybGQgUnVubmVyLnppcA==';
#get file name
my $ua = LWP::UserAgent->new();
$cnt = %{%{$ua->head($url)}->{'_headers'}}->{'content-disposition'};
$cnt =~ m/filename=(.*)/;
print "File name is: $1\n";
#Save File
my $status = getstore($url, $1);
if (is_success($status)){
print "File $1 Saved Correctly !\n";
}else{
print "Error saving $1!\n";
}
感謝您的快速回復。 – james 2012-01-09 12:37:29