断断续续的PHP上传到谷歌驱动器

时间:2018-09-30 22:14:26

标签: php google-drive-api

我正在尝试通过此php脚本将文件(105mb)恢复上传到Google驱动器:

$client->setDefer(true);
$chunkSize = 1024 * 1024 * 10;
$request = $service->files->create(
    $fileMetadata,
    [
        "mimeType" => $mimeType,
        "uploadType" => "resumable",
        'fields' => 'id'
    ]
);
$media = new Google_Http_MediaFileUpload($client, $request, $mimeType, null, true, $chunkSize);
$media->setFileSize(filesize($path));
$media->setChunkSize($chunkSize);

$status = false;
$handle = fopen($path, "rb");
$k = 1;
while (!$status && !feof($handle)) {
    $chunk = fread($handle, $chunkSize);
    echo $k . '<br>';
    try {
        $status = $media->nextChunk($chunk);
    } catch (Exception $e) {
        echo 'error - ' . $e->getMessage();
    }
    $k++;
}
$result = false;
if ($status != false) {
    $result = $status;
}
fclose($handle);
$client->setDefer(false);

while构造中的代码执行10次,最后11次出现错误:

  

[Google_Service_Exception]   非法请求。请求中有394240个字节(或更多)   身体。应该有372414字节(从偏移量开始)   78643200,并根据内容范围结束于偏移量79015613)   标头。 (400)

我在做什么错?我尝试将块大小增加到100 mb,代码执行无误,但是变量$ result为空,文件未上传。 没有块的简单上传是可行的,但是我需要上传大文件。

0 个答案:

没有答案