Mam więc dziwne problemy z przesyłaniem PHP za pomocą interfejsu GAPI. Plik faktycznie jest tworzony na dysku, ale z jakiegoś powodu dane nie trafiają do Google i po prostu tworzy plik z 0 bajtami.Google Drive PHP API pusty załadowany plik
Oto mój kod:
function uploadFile($service, $title, $description, $parentId, $mimeType, $filepath) {
$mimeType = "image/png";
$title = "test.png";
$file = new Google_Service_Drive_DriveFile();
$file->setTitle($title);
$file->setDescription($description);
$file->setMimeType($mimeType);
// Set the parent folder.
if ($parentId != null) {
$parent = new Google_Service_Drive_ParentReference();
$parent->setId($parentId);
$file->setParents(array($parent));
}
try {
$data = file_get_contents();
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => $mimeType,
));
// Uncomment the following line to print the File ID
// print 'File ID: %s' % $createdFile->getId();
//return $createdFile;
} catch (Exception $e) {
echo "An error occurred: " . $e->getMessage();
}
}
Wszystko jest uwierzytelniona, więc wiem, że nie jest to problem. Kiedy wyjście $ dane, mam bałagan bzdur, że zazwyczaj, gdy wyciągając plik, więc wiem, że to nie jest problem .. Wszystkie zakresy powinny mieć rację, ale tutaj są one tak czy inaczej:
$client->addScope("https://www.googleapis.com/auth/drive");
$client->addScope("https://www.googleapis.com/auth/drive.file");
$client->addScope("https://www.googleapis.com/auth/drive.appdata");
$client->addScope("https://www.googleapis.com/auth/drive.scripts");
$client->addScope("https://www.googleapis.com/auth/drive.apps.readonly");
$client->addScope("https://www.googleapis.com/auth/drive.metadata.readonly");
$client->addScope("https://www.googleapis.com/auth/drive.readonly");
Nie dokumentację mogę znaleźć na ten temat, więc każda pomoc będzie naprawdę doceniona!
Najważniejszą rzeczą jest "uploadType" => 'media' –
Alleluja! Problem z zaczynaniem od quickstart.php i skakaniem w prawo do operacji zapisu - nie ustawili cię do tego, nie, nie zrobili tego. Pozwól, że polujesz na niszczycielskie moce, co jest prawdopodobnie dobrym pomysłem :) –