You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Storage::download()时无法获取文件大小的错误求助

Laravel Storage::download() 报错:无法获取文件大小的解决方法

当调用Storage::download(...)方法时,出现错误:

Unable to retrieve the file_size for file at location: .

解决步骤

  • 检查文件路径正确性
    确认传入的路径是对应存储磁盘的相对路径,比如使用Storage::disk('public')->download('docs/report.pdf'),而非服务器绝对路径。同时注意系统大小写(Linux环境下路径区分大小写),避免拼写错误。

  • 验证文件存在性与访问权限
    先用Storage::exists($path)判断文件是否存在;若为本地存储,确保Web服务器(如Nginx/Apache)拥有该文件的读取权限;若为云存储(如S3),检查存储桶权限配置,确保服务端具备文件读取权限。

  • 云存储环境额外排查
    若使用S3等云存储,确认Laravel与对应SDK版本兼容;部分云存储存在文件同步延迟,可等待片刻后重试。

  • 临时替代方案
    若以上方法无效,可手动获取文件信息后用响应方法实现下载:
    本地存储示例:

    $localPath = storage_path('app/public/your-file.pdf');
    return response()->download($localPath, '自定义文件名.pdf', [
        'Content-Length' => filesize($localPath)
    ]);
    

    云存储(S3)示例:

    $disk = Storage::disk('s3');
    $fileContent = $disk->get($path);
    return response($fileContent, 200, [
        'Content-Type' => $disk->mimeType($path),
        'Content-Length' => $disk->size($path),
        'Content-Disposition' => "attachment; filename=\"".basename($path)."\""
    ]);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:42:34