簡體   English   中英

在Google雲端硬盤中創建文件夾並插入文件

[英]Create folder and insert file in Google Drive

我正在嘗試在雲端硬盤中創建一個新文件夾,並將一個(或多個)文件上傳到該創建的文件夾。 我使用下面的代碼,但結果是文件夾和文件都放在我的驅動器的根目錄中。

$client->setAccessToken($_SESSION['accessToken']);

//create folder
$folder_mime = "application/vnd.google-apps.folder";
$folder_name = 'New Folder';

$service = new Google_DriveService($client);
$folder = new Google_DriveFile();

$folder->setTitle($folder_name);
$folder->setMimeType($folder_mime);
$service->files->insert($folder);

//upload file
$file_name = $_FILES["uploadFile"]["name"];
$file_mime = $_FILES["uploadFile"]["type"];
$file_path = $_FILES["uploadFile"]["tmp_name"];

$service = new Google_DriveService($client);
$file = new Google_DriveFile();

$file->setParents(array($folder_name));
$file->setTitle($file_name);
$file->setDescription('This is a '.$file_mime.' document');
$file->setMimeType($file_mime);
$service->files->insert(
    $file,
    array(
        'data' => file_get_contents($file_path)
    )
);

感謝@pinoyyid,這是適合我的代碼。

$client->setAccessToken($_SESSION['accessToken']);

//create folder
$folder_mime = "application/vnd.google-apps.folder";
$folder_name = 'New Folder';

$service = new Google_DriveService($client);
$folder = new Google_DriveFile();

$folder->setTitle($folder_name);
$folder->setMimeType($folder_mime);
$newFolder = $service->files->insert($folder);

$parentId  = $newFolder['id'];
//upload file
$file_name = $_FILES["uploadFile"]["name"];
$file_mime = $_FILES["uploadFile"]["type"];
$file_path = $_FILES["uploadFile"]["tmp_name"];

$service = new Google_DriveService($client);
$file = new Google_DriveFile();

if ($parentId != null) {
    $parent = new Google_ParentReference();
    $parent->setId($parentId);
    $file->setParents(array($parent));
}

$file->setTitle($file_name);
$file->setDescription('This is a '.$file_mime.' document');
$file->setMimeType($file_mime);
try {
return $service->files->insert(
    $file,
    array(
        'data' => file_get_contents($file_path)        
    )
);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM