如何从Web App将文件上传到Google云端硬盘

时间:2014-08-13 12:51:36

标签: php google-drive-api

我在网络应用中创建了新功能。

我创建了google drive常规帐户。我希望用户能够看到某些文件 在该帐户上,并能够将新文件添加到此帐户。

我进行了身份验证,我存储凭据和显示文件(也删除它们)工作正常。但我偶然发现了上传文件的问题。 我看到的每个教程,当涉及到acctual上传时都会做类似的事情:

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

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

但这适用于服务器上的文件。好像用户应该首先将文件上传到我的服务器,而不是我的服务器应该将其上传到Google云端硬盘。 有没有办法通过我的Web App上传文件,但是直接从用户PC上传文件?

1 个答案:

答案 0 :(得分:0)

您需要使用文件输入,然后使用传统方法提交。完成后,您只需在临时文件上使用file_get_contents()

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

<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>

然后, drive_upload.php 会执行此操作:

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

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

请注意,我还冒昧地将uploadType添加到上传数组中。您还需要一种通过这种上传来处理MIME类型的方法,但这是一个相对简单的过程,上面的内容应该让您开始。