我正在尝试将大文件上传到Google驱动器。为了保留内存,我使用Google的媒体文件上传功能将文件分块添加。
文件上传正常,但是我收到来自PHP ( Warning: rawurldecode() expects parameter 1 to be string, object given )
的警告
如果有任何错误,我在下面发布了我的代码:
$file3 = new Google_Service_Drive_DriveFile();
$file3->setName($zipName3 . '.zip');
$file3->setDescription('Testing document ZIP backups');
$file3->setMimeType('application/zip');
$chunkSizeBytes = 1 * 1024 * 1024;
$client->setDefer(true);
$request = $service->files->create($file3);
$media = new Google_Http_MediaFileUpload($client, $request, 'application/zip', null,true,$chunkSizeBytes);
$media->setFileSize(filesize($zipPath3));
$result = $service->files->create($file3, array('mediaUpload' => $media));
$status = false;
$handle = fopen($zipPath3, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}
$result = false;
if($status != false) {
$result = $status;
}
fclose($handle);
print_r($result);
答案 0 :(得分:0)
似乎已解决问题:
$file3 = new Google_Service_Drive_DriveFile();
$file3->setName($zipName3 . '.zip');
$file3->setDescription('Testing document ZIP backups');
$file3->setMimeType('application/zip');
$chunkSizeBytes = 1 * 1024 * 1024;
$client->setDefer(true);
$request = $service->files->create($file3);
$media = new Google_Http_MediaFileUpload($client, $request, 'application/zip', null,true,$chunkSizeBytes);
$media->setFileSize(filesize($zipPath3));
**$result = $service->files->create($file3, array('mediaUpload' => $media));**
$status = false;
$handle = fopen($zipPath3, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}
$result = false;
if($status != false) {
$result = $status;
}
fclose($handle);
print_r($result);
罪魁祸首:
$result = $service->files->create($file3, array('mediaUpload' => $media));
不知道为什么我在创建文件时传递了$ media对象,但是删除了它可以解决问题:
$result = $service->files->create($file3);