未定义 属性: Google_Http_Request::$id 尝试将文件插入云端硬盘时
Undefined property: Google_Http_Request::$id when trying to insert file into Drive
我正在尝试使用 PHP 客户端的 yannisg's Google Uploader as base and a modified version of Google Drive example. The folder is created during the upload process. But I'm getting the above error about undefined id. Then it uploads the file into Drive's root folder. I'm using the v1-master 将用户提交的文件插入以用户命名的特定文件夹中。
function upload(){
$client = $this->client;
$service = $this->service; //$service = new Google_Service_Drive($client);
//Create folder
$folder = new Google_Service_Drive_DriveFile(array(
'mimeType' => 'application/vnd.google-apps.folder'));
$folder->setTitle($this->ownerName); //applicant's name
$folderData = $service->files->insert($folder, array(
'fields' => 'id'));
//create file
$file = new Google_Service_Drive_DriveFile();
$file->title = $this->fileName;
$chunkSizeBytes = 1 * 1024 * 1024;
$fileRequest = $this->fileRequest;
$mimeType = $this->mimeType;
//Set parent id
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($folderData->id);
$file->setParents(array($parent));
$request = $service->files->insert($file);
//The rest of the script...
}
我觉得问题出在这里
$parent->setId($folderData->id);
这是修改后的示例脚本中的相同部分,效果很好。我本来可以使用它,但我似乎无法将它正确地集成到我需要 运行 的另一个脚本中。 yannisg 负责处理刷新令牌。
//Create folder
$folder = new Google_Service_Drive_DriveFile(array(
'mimeType' => 'application/vnd.google-apps.folder'));
$folder->setTitle($_FILES["uploaded"]["name"]); //applicant's name
$folderData = $service->files->insert($folder, array(
'fields' => 'id'));
var_dump($folderData);
//Create file
$file = new Google_Service_Drive_DriveFile();
$file->title = $_FILES["uploaded"]["name"];
$chunkSizeBytes = 1 * 1024 * 1024;
//Set parent id
$parent = new Google_Service_Drive_ParentReference(); //previously Google_ParentReference
$parent->setId($folderData->id);
$file->setParents(array($parent));
Var 转储第二个脚本给了我对象 (Google_Service_Drive_DriveFile) 而第一个给了对象 (Google_Http_Request)。是不是因为第一个在class?
提前致谢。
我解决了。这与推迟有关。在yannisg的脚本中,
$client->setDefer(true);
是在前面的函数中声明的,也就是说创建文件夹的语句是和文件一起执行的。难怪它无法获取 parents id。将其移动到文件夹插入部分下方后,一切再次正常。
//folder insertion
$client->setDefer(true);
$request = $service->files->insert($file); //file insertion
我正在尝试使用 PHP 客户端的 yannisg's Google Uploader as base and a modified version of Google Drive example. The folder is created during the upload process. But I'm getting the above error about undefined id. Then it uploads the file into Drive's root folder. I'm using the v1-master 将用户提交的文件插入以用户命名的特定文件夹中。
function upload(){
$client = $this->client;
$service = $this->service; //$service = new Google_Service_Drive($client);
//Create folder
$folder = new Google_Service_Drive_DriveFile(array(
'mimeType' => 'application/vnd.google-apps.folder'));
$folder->setTitle($this->ownerName); //applicant's name
$folderData = $service->files->insert($folder, array(
'fields' => 'id'));
//create file
$file = new Google_Service_Drive_DriveFile();
$file->title = $this->fileName;
$chunkSizeBytes = 1 * 1024 * 1024;
$fileRequest = $this->fileRequest;
$mimeType = $this->mimeType;
//Set parent id
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($folderData->id);
$file->setParents(array($parent));
$request = $service->files->insert($file);
//The rest of the script...
}
我觉得问题出在这里
$parent->setId($folderData->id);
这是修改后的示例脚本中的相同部分,效果很好。我本来可以使用它,但我似乎无法将它正确地集成到我需要 运行 的另一个脚本中。 yannisg 负责处理刷新令牌。
//Create folder
$folder = new Google_Service_Drive_DriveFile(array(
'mimeType' => 'application/vnd.google-apps.folder'));
$folder->setTitle($_FILES["uploaded"]["name"]); //applicant's name
$folderData = $service->files->insert($folder, array(
'fields' => 'id'));
var_dump($folderData);
//Create file
$file = new Google_Service_Drive_DriveFile();
$file->title = $_FILES["uploaded"]["name"];
$chunkSizeBytes = 1 * 1024 * 1024;
//Set parent id
$parent = new Google_Service_Drive_ParentReference(); //previously Google_ParentReference
$parent->setId($folderData->id);
$file->setParents(array($parent));
Var 转储第二个脚本给了我对象 (Google_Service_Drive_DriveFile) 而第一个给了对象 (Google_Http_Request)。是不是因为第一个在class?
提前致谢。
我解决了。这与推迟有关。在yannisg的脚本中,
$client->setDefer(true);
是在前面的函数中声明的,也就是说创建文件夹的语句是和文件一起执行的。难怪它无法获取 parents id。将其移动到文件夹插入部分下方后,一切再次正常。
//folder insertion
$client->setDefer(true);
$request = $service->files->insert($file); //file insertion