【问题标题】:How to read the content of the PDF file which is uploaded into Google Drive?如何阅读上传到 Google Drive 的 PDF 文件的内容?
【发布时间】:2019-06-26 10:29:32
【问题描述】:

我想阅读上传到谷歌驱动器的 PDF 文件的内容。内容应该是人类可读的格式,而不是二进制格式。现在我正在使用 google drive API 来读取内容,但无法做到这一点。

 $fileId = $request['thesis_google_id'];
    $response = $service->files->get($fileId,   array(
    'alt' => 'media'));
    $content = $response->getBody()->read(2024);

【问题讨论】:

    标签: php google-api google-drive-api google-api-php-client


    【解决方案1】:

    Google Drive API 的核心功能是下载和上传 Google Drive 中的文件。此 API 无法让您读取任何内容,它只是为您存储文件并允许您下载它们。

    Google Docs api 确实让您可以读取和写入文件,但我怀疑它只支持 google docs 格式的文件而不是 PDF。

    您需要在本地下载文件,然后使用某种形式的 PDF 阅读器供 PHP 阅读。

    【讨论】:

      【解决方案2】:

      您可以使用Google Drive REST API 提供的Files: export 方法来获取PDF 文件的内容。 .pdf 文件的导出方法不会返回图像,但文件中的所有文本都可以导出为人类可读的格式。列出了您可以导出到的受支持的 MIME 类型 here

      在 PHP 中,您可以使用以下代码实现此目的:

      $fileId = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
      $response = $service->files->export($fileId, 'MIMEType', array(
          'alt' => 'media'));
      $content = $response->getBody()->getContents();
      
      

      您的应用程序至少需要 Google 文档的读取权限才能执行此操作,并且应包含查询参数 alt=media

      【讨论】:

      • @Rata Guillermo 我正在使用这种方法,但仍然无法读取我的 Google Drive PDF 文件的内容。我正在为我的项目使用以下范围。请检查一次,如果我遗漏了什么,请告诉我。 googleapis.com/auth/drive.filegoogleapis.com/auth/drivegoogleapis.com/auth/drive.metadata.readonlygoogleapis.com/auth/drive.readonly
      • 您在尝试运行代码时是否遇到错误,如果是,那是什么?还要确保将export 方法中的'MIMEType' 更改为所需的MIMEType,在本例中为'application/pdf'
      • 我没有收到任何错误,但内容也没有收到。我将 MIMEType 更改为 application/pdf。
      • 调用getContents()content的值是多少?
      猜你喜欢
      • 1970-01-01
      • 2013-05-19
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多