В настоящее время у меня есть скрипт, который перебирает папку на диске Google и выполняет различные действия, одним из которых является синхронизация c файлов, загруженных / обновленных на gdrive, с файлами на сервере. Сценарий решает, что ему нужен файл, и использует следующую функцию для записи его на сервер:
function get_file($file, $service, $docroot, $area){
$errorthrown = false;
try {
$getFile = $service->files->get($file->id, array('alt' => 'media'));
$content = $getFile->getBody()->getContents();
$handle = fopen($docroot.'file/'.$area.'/'.$file->name,"w");
fwrite($handle, $content);
fclose($handle);
} catch (\Throwable $e) {
print "The Google Drive API threw an error, but dont worry, we'll come back for this.";
return "error";
}
}
Теперь я хотел бы предложить файловый менеджер на сервере, который позволяет пользователям выбирать файлы, в том числе на сервере и те, которые не являются. Есть ли способ принудительной загрузки файлов, возвращенных из API Google Drive, без первого fwrite () ing? Например, с использованием readfile () или fpassthru ()?
Я пробовал разные вещи с readfile ( ) но с Google Drive у меня есть содержимое файла, но нет пути к самому файлу.
Есть идеи?
Большое спасибо.