Google Drive API PHP 可恢复

问题描述 投票:0回答:1

我使用带有分块功能的 dropzone js 来获取一个大文件并将其分解,每个部分都被发送到 PHP,并且该大文件的所有部分都有一个 mime 类型应用程序/八位字节流(如果您将将文件块放在一起,它将是视频/mp4)现在我想做的是将文件重新放在 Google Drive 中,这是我的 PHP 代码:

public function addFile($filename, $content, $description = '')
    {
        $file = new \Google\Service\Drive\DriveFile();
        $file->setName($filename);
        $file->setParents([$_ENV['FOLDER_ID']]);
        $file->setDescription($description);

        $result = $this->driveService->files->create(
            $file,
            [
                'data' => $content,
                'mimeType' => 'application/octet-stream',
                'uploadType' => 'resumable'
            ]
        );

        return sprintf('https://drive.google.com/file/d/%s/view?usp=sharing', $result->getId());
    }

我遇到的问题是,当我期望将 1 个文件放在一起时,每个块都会上传到我的 Google 云端硬盘,我正在尝试做的事情是否可能?

php google-drive-api
1个回答
0
投票

我认为您必须将服务器本地磁盘上的块写入一个文件中。您可以使用

file_put_contents( $filename, $chunk, FILE_APPEND );

然后使用 dropzone

complete
事件处理程序通过异步请求通知服务器上传已完成

myDropzone.on("complete", function(file) {
  myDropzone.removeFile(file);
  fetch('/upload-complete', {method:'POST', file})
});
//upload-conplete.php
$file = $_POST['file'];
// chack status of uploaded file here
var_dump($file);
// add file to Google drive here if all is well
© www.soinside.com 2019 - 2024. All rights reserved.