我想列出根目錄的文件夾,其中用戶可以選擇他們想要上傳文件或根目錄的文件夾。谷歌驅動器AP列表文件夾只在PHP中的根文件夾
我可以通過將查詢放在下面的這一行來實現這一點嗎?
$files = $service->files->listFiles($parameters);
在此先感謝
我想列出根目錄的文件夾,其中用戶可以選擇他們想要上傳文件或根目錄的文件夾。谷歌驅動器AP列表文件夾只在PHP中的根文件夾
我可以通過將查詢放在下面的這一行來實現這一點嗎?
$files = $service->files->listFiles($parameters);
在此先感謝
下面的代碼是從他們的API documentation page馬上覆制。 您需要指定$service
和$folderId
。
要在GoogleDrive中獲得這樣的ID有點棘手,並且最好通過他們的search parameters完成。查看我的功能getSOFolderByName
()作爲示例(搜索名爲'stackoverflow'的文件夾並檢索它可找到的第一個ID)。 listSOFolder()
是出發點。
function listSOFolder($service) {
$folderID = getSOFolderByName($service);
if ($folderID)
printFilesInFolder($service, $folderID);
}
function getSOFolderByName($service) {
$search = "title='stackoverflow' AND mimeType = 'application/vnd.google-apps.folder' AND trashed != true";
$parameters = array("q" => $search);
$files = $service->files->listFiles($parameters);
if (!empty($files["items"])) {
$folderID = $files["items"][0]->getId(); // the first element
return $folderID;
} else
return false;
}
/**
* Print files belonging to a folder.
* Copied shamelessly from https://developers.google.com/drive/v2/reference/children/list
* @param Google_Service_Drive $service Drive API service instance.
* @param String $folderId ID of the folder to print files from.
*/
function printFilesInFolder($service, $folderId) {
$pageToken = NULL;
do {
try {
$parameters = array();
if ($pageToken) {
$parameters['pageToken'] = $pageToken;
}
$children = $service->children->listChildren($folderId, $parameters);
foreach ($children->getItems() as $child) {
print 'File Id: ' . $child->getId();
}
$pageToken = $children->getNextPageToken();
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
$pageToken = NULL;
}
} while ($pageToken);
}
您應該能夠簡單地使用Files.list與?q=
參數列出與根目錄的文件夾。
它看起來是這樣的:q:mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false
在上面的查詢,它是在3個指標分析過濾器。
你可以試着查詢here。
在PHP代碼,這將是這樣的:
$parameters['q'] = "mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false"
$files = $service->files->listFiles($parameters);