我在网络应用中创建了新功能。
我创建了google drive常规帐户。我希望用户能够看到某些文件 在该帐户上,并能够将新文件添加到此帐户。
我进行了身份验证,我存储凭据和显示文件(也删除它们)工作正常。但我偶然发现了上传文件的问题。 我看到的每个教程,当涉及到acctual上传时都会做类似的事情:
$data = file_get_contents('document.txt');
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => 'text/plain',
));
但这适用于服务器上的文件。好像用户应该首先将文件上传到我的服务器,而不是我的服务器应该将其上传到Google云端硬盘。 有没有办法通过我的Web App上传文件,但是直接从用户PC上传文件?
答案 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类型的方法,但这是一个相对简单的过程,上面的内容应该让您开始。