2

URLリストを調べてリンクされたファイルをダウンロードするよりも、WebページからURLリストを生成するスクリプトをPerlで作成しようとしています。

問題は、生成された URL のリンクが次のようになることです。

www.example.com/download.php?file=Li9OaW50ZW5kby9ORVMvVVNBLzEwIFlhcmQgRmlnaHQuemlw

このリンクをブラウザに配置すると、実際のファイル名 (つまり、cards.zip) が認識されますが、Perl を使用して取得する方法がわかりません。

Perl を使用してリンクの「真の」ファイル名を取得するにはどうすればよいですか?

4

2 に答える 2

3

具体的には、ヘッダーを調べContent-Dispositionます。

于 2012-01-09T00:49:15.207 に答える
2

アマダンはそれを正しく、私がそれを解決するために使用したコードを示しています:

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";
}
于 2012-01-09T12:51:34.823 に答える