【问题标题】:Perl, resolving link download namePerl,解析链接下载名称
【发布时间】:2012-01-09 00:43:47
【问题描述】:

我正在尝试在 Perl 中编写一个从网页生成 URL 列表的脚本,然后遍历 URL 列表并下载链接文件。

问题是生成的 URL 的链接看起来像

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

当我将此链接放在浏览器中时,它知道真实的文件名(即cards.zip),我不知道如何使用 Perl 获取它。

如何使用 Perl 获得链接的“真实”文件名?

【问题讨论】:

    标签: perl download resolve


    【解决方案1】:

    检查标题,特别是Content-Disposition

    【讨论】:

      【解决方案2】:

      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";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-28
        • 2010-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-23
        • 1970-01-01
        相关资源
        最近更新 更多