0
我一直在做box api。我可以讓一切工作,但文件上傳。下面是代碼:Box api v2使用php上傳文件
$path = 'https://upload.box.com/api/2.0/files/content';
$method = 'POST';
$headers = array('Authorization Bearer ' . $accessToken);
$attributes = array('name'=>$file_name, 'parent'=>array('id'=>0));
$body = array('attributes'=>json_encode($attributes), 'file'=>'@'.realpath($filepath));
$result = $this->post($path, $method, $body, $headers);
和所有的傳遞到後功能:
function post($url,$method, $fields, $headers){
try {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
$responseCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (false === $response) {
$errNo = curl_errno($ch);
$errStr = curl_error($ch);
}
curl_close($ch);
} catch (Exception $e) {
$response = $e->getMessage();
}
return $responseCode;
}
我得到使用這個400錯誤,但如果我調用函數後前加入這一行$body = http_build_query($body, '', '&');
我會得到一個405錯誤。
在這兩種情況下,雖然上傳不起作用。我一定要傳遞文件的實際路徑,而不是相對路徑,以防萬一有人想知道。
我也檢查過這樣的解決方案:https://github.com/golchha21/BoxPHPAPI但這也沒有效果。
關於這個問題的任何想法以及如何解決它?