好的。。。我想不通的新手问题。以下是Box.com文档中关于上传文件的说明:
curl https://upload.box.com/api/2.0/files/content '
-H "Authorization: Bearer ACCESS_TOKEN" -X POST '
-F attributes='{"name":"tigers.jpeg", "parent":{"id":"11446498"}}' '
-F file=@myfile.jpg
我正在PHP中尝试这个:
$attributes='{"name":"tigers.jpeg", "parent":{"id":"4224475591"}}';
$headr = array();
$headr[] = 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxx';
$prep_data = array('file'=>'data08.13.15.csv','attributes' => $attributes);
$post_data= http_build_query($prep_data) . "'n";
$url = 'https://upload.box.com/api/2.0/files/content';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec( $ch );
var_dump($response);
我正在为我的var_dump($response);
取回string(0) ""
我在这里做错了什么?
您没有指定它是多部分表单数据。不确定你是否也有其他问题。但这里有一些工作代码,你可以更改以满足你的需求:
<?php
// ENTER YOUR DEVELOPER TOKEN
$token = "ekdfokeEdfdfkosdkoqwekof93kofsdfkosodSqd";
$url = "https://upload.box.com/api/2.0/files/content";
if (isset($_POST['btnUpload'])) {
$file_upload = $_FILES['file']['tmp_name'];
$json = json_encode(array(
'name' => $_FILES['file']['name'],
'parent' => array('id' => 0)
));
$fields = array(
'attributes' => $json,
'file'=>new CurlFile($_FILES['file']['tmp_name'],$_FILES['file']['type'],$_FILES['file']['name'])
);
try {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer '.$token,
'Content-Type:multipart/form-data'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$response = curl_exec($ch);
curl_close($ch);
} catch (Exception $e) {
$response = $e->getMessage();
}
print_r($response);
}
?>
<form method="post" name="frmUpload" enctype="multipart/form-data">
<label>Upload file to Box
<input name="file" type="file" id="file"/>
</label>
<input name="btnUpload" type="submit" value="Upload" />
</form>
http://liljosh.com/uploading-files-to-box-content-api-v2/