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

Google Drive API导出application/zip返回空内容,PDF导出正常求助

分析你的Google Drive API导出问题

首先可以明确的是,你的代码操作大概率没有问题,结合你描述的现象,更倾向于是Google Drive API本身的bug,具体分析如下:

先排除代码层面的小细节(可能是粘贴笔误)

  • 你代码里的$service = new Google_Service_Drive($client)语句末尾缺少分号,不过这应该是你粘贴时的疏漏——如果真的没写,代码根本无法运行,所以可以忽略这点。
  • 确认export方法里的$fileId变量是否正确赋值为目标表格的ID(也就是你get方法里用的1GDeQU7mVbipmQlPTTccmznUeJ0AgFyNrGA4TfzTgEys),不过你提到返回了200状态码,说明这个参数是正确的,所以也不是问题所在。

核心问题判断:API服务端bug

你提到的两个关键现象已经足以佐证:

  • 导出PDF格式完全正常,说明你的客户端配置、权限、文件ID都是没问题的,排除了所有基础错误可能。
  • Google官方的API Explorer也无法正常导出ZIP格式,这直接说明问题出在Google Drive API的服务端,而非你的代码实现。

临时解决方案

既然已经在谷歌问题追踪提交了Issue,目前可以用一个临时方案绕开这个bug:

  1. 先将表格导出为HTML格式,使用MIME类型text/html:
    $download = $service->files->export('1GDeQU7mVbipmQlPTTccmznUeJ0AgFyNrGA4TfzTgEys', 'text/html', array('alt' => 'media'));
    $htmlContent = $download->getBody()->getContents();
    
  2. 用PHP的ZipArchive类手动将HTML内容压缩为ZIP文件:
    $zip = new ZipArchive();
    $zipFileName = 'exported_table.zip';
    if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE) {
        $zip->addFromString('table.html', $htmlContent);
        $zip->close();
        // 后续可以处理这个zip文件
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:48:21