Php 如何从Web应用程序将文件上载到Google Drive

Php 如何从Web应用程序将文件上载到Google Drive,php,google-drive-api,Php,Google Drive Api,我正在我的web应用程序中创建新功能 我创建了谷歌驱动器常规帐户。我希望用户能够看到某些文件 并能够向该帐户添加新文件 我进行了身份验证,我正在存储凭据并显示文件,删除它们也可以正常工作。但我无意中发现了上传文件的问题。 我所看到的每一个教程,当涉及到acctual upload时,都是这样做的: $data = file_get_contents('document.txt'); $createdFile = $service->files->insert($file, arra

我正在我的web应用程序中创建新功能

我创建了谷歌驱动器常规帐户。我希望用户能够看到某些文件 并能够向该帐户添加新文件

我进行了身份验证,我正在存储凭据并显示文件,删除它们也可以正常工作。但我无意中发现了上传文件的问题。 我所看到的每一个教程,当涉及到acctual upload时,都是这样做的:

$data = file_get_contents('document.txt');

$createdFile = $service->files->insert($file, array(
      'data' => $data,
      'mimeType' => 'text/plain',
    ));
但这适用于服务器上的文件。就好像用户应该首先上传一个文件到我的服务器,而我的服务器应该上传它做谷歌驱动器。
有没有办法通过我的Web应用程序直接从用户PC上传文件?

您需要使用文件输入,然后使用传统方法提交文件。完成后,您可以简单地使用临时文件上的file\u get\u内容

例如,这可能是您的表单:

<form action="drive_upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="file" />
    <input type="submit" name="submit" value="Submit" />
</form>
注意,我还随意将uploadType添加到upload数组中。您还需要一种通过这种上传来处理MIME类型的方法,但这是一个相对简单的过程,上面的内容应该可以帮助您开始

$data = file_get_contents($_FILES['file']['tmp_name']);

$createdFile = $service->files->insert($file, array(
    'data' => $data,
    'mimeType' => 'text/plain',
    'uploadType' => 'media'
));