我的问题如下。使用Google Drive API V3和php将文件上传到Google Drive时,上传的文件为空,文件大小为0字节。所有元数据上传都没有问题。
session_start();
$file_tmp=$_SESSION['file_tmp'];
$drive = new Google_Service_Drive($client);
$data = file_get_contents($file_tmp);
$file = new Google_Service_Drive_DriveFile(array(
'data' => $data,
'mimeType' => $file_type,
'name' => $file_name,
'description'=>$lolol,
'uploadType' => 'multipart',
'parents' => array($folderID),
'uploadType' => 'multipart'
));
$createdFile = $drive->files->create($file);
对于任何想知道的人,如果我回显$ file_tmp,我都会得到诸如/ private / var / tmp / phpDpmi83之类的路径。(我是从带有输入类型文件的html表单中获得的)
最初我没有UploadType,其他论坛都说这是问题所在,但我没有添加任何内容。有什么建议么?
我相信您的目标如下。
multipart/form-data
的文件上传到Google Drive中的特定文件夹。$drive
可用于上传文件。为此,这个答案如何?
当上述要点反映到脚本中时,它如下所示。
session_start();
$file_tmp=$_SESSION['file_tmp'];
$drive = new Google_Service_Drive($client);
$data = file_get_contents($file_tmp);
// I modified below script.
$file = new Google_Service_Drive_DriveFile(array(
'mimeType' => $file_type,
'name' => $file_name,
'description'=>$lolol,
'parents' => array($folderID),
));
$file_content = array(
'data' => $data,
'uploadType' => 'multipart'
);
$createdFile = $drive->files->create($file, $file_content);
$data
是文件内容。如果无法使用$file_tmp
,请使用示例文件进行测试。