Php 卷曲上传到谷歌硬盘
我可以通过json在Google Drive中创建一个文件到驱动器文件夹中:Php 卷曲上传到谷歌硬盘,php,curl,upload,google-drive-api,Php,Curl,Upload,Google Drive Api,我可以通过json在Google Drive中创建一个文件到驱动器文件夹中: $data = array( "title" => $_FILES['file']['name'], "parents" => array(array( "kind" => "drive#parentReference", "id" => $parent_id )), "mimeType" => "application/pd
$data = array(
"title" => $_FILES['file']['name'],
"parents" => array(array(
"kind" => "drive#parentReference",
"id" => $parent_id
)),
"mimeType" => "application/pdf"
);
$data = json_encode($data);
$url = "https://www.googleapis.com/drive/v2/files?oauth_token=".$accessToken;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
但是我找不到在上面添加PDF文件的方法,因为GoogleDrive文档中没有指定json属性
我必须在哪里添加文件内容?
这可能吗
我是否必须先将文件上载到upload/drive,然后再上载带有文件夹id的元数据?我觉得没有什么意义。您想将文件放在正文中(即,在CURLOPT_post字段中)。您还需要指定与文件类型和内容长度匹配的内容类型 这是 文件元数据应该指向/drive/v2/files,而不是/upload/drive/v2/files 这样,您必须提出两个请求 如果要同时执行文件和元,可以使用API和文件插入:
请注意,有一种方法可以简化此操作。是的,编辑了路径。问题是,如果我发送文件内容,我找不到发送父文件夹id或文件上任何其他信息的方法。是获取文件路径的Title属性吗?我已尝试使用该库,但由于某些原因无法使其工作。这个项目从一开始就是在curl上进行的,所以我不知道这是否与现在不在库上工作有关。它只是在我在客户端设置访问令牌时,在我的控制台上显示内部服务器错误。您知道如何以curl方式添加文件吗?@mrq如上所述,如果您要直接使用API而不使用便利库,则需要执行两个事务,一个用于放置文件,另一个用于设置元。如果有机会,我会尝试更新更详细的答案。我尝试过使用double curl调用,但是如果我在postfields上获得文件,我无法发送文件id将其上载到。我以前从来没有这样做过,如果我看起来太无知,我很抱歉,但我在这方面。谢谢