我正在尝试通过此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为空,文件未上传。 没有块的简单上传是可行的,但是我需要上传大文件。