You need to enable JavaScript to run this app. 使用WWW::Mechanize的:content_file参数下载时如何获取响应返回的文件名
优惠活动
大模型
产品
解决方案
定价
更多

使用WWW::Mechanize的:content_file参数下载时如何获取响应返回的文件名

解决方案

当你使用:content_file参数执行流式下载时,WWW::Mechanize仅会将响应体直接写入磁盘、不加载到内存中,并不会丢弃响应的元数据,$mech->response对象仍然完整保留了所有响应头信息,因此你可以直接调用原有方法获取原始文件名,不需要额外构造。

实现步骤

  • 首先正常执行带:content_file参数的请求
  • 请求成功后直接调用$mech->response->filename即可获取和之前完全一致的原始文件名
  • 可以按需将临时文件重命名为原始文件名

示例代码如下:

# 执行流式下载,内容直接写入临时文件
$mech->get( $url, ":content_file" => $tempfile );

# 确认请求成功后操作
if ($mech->success) {
    # 直接获取原始文件名,返回值和未使用:content_file时完全一致
    my $original_filename = $mech->response->filename;
    
    # 可选:将临时文件重命名为原始文件名
    rename $tempfile, $original_filename or die "文件重命名失败: $!";
}

内容的提问来源于stack exchange,提问作者CJ7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 12:51:01