curl文件下载示例不起作用

时间:2012-04-27 17:43:11

标签: box-api

如果我按照框api 2.0 curl示例获取文件的元数据,我会得到相关信息。当我将/ data附加到url下载文件时,curl说:

curl:(52)来自服务器的空回复

我用两个文件做了这个,两个文件都有相同的结果。

这里的系统是OpenBSD 5.0。

在python 3中,同一个请求引发了一个异常,该异常表明来自服务器的回复包含一个空的状态行。

4 个答案:

答案 0 :(得分:3)

我有同样的问题。问题是您需要将CURLOPT_FOLLOWLOCATION选项设置为true。 Box将执行从API调用到实际文件的重定向。没有它,它将返回一个空的响应。

答案 1 :(得分:1)

如果文件本身为空,则应返回空响应。例如,如果两个文本文件中没有任何文本,则不会返回任何文本,即这似乎是预期的行为。

答案 2 :(得分:1)

我遇到了同样的问题。我已成功上传文件,检索文件ID,然后当我尝试下载文件时,没有任何反应。就像上面提到的原始海报一样,如果我取消了URL的“/ data”部分,那么我可以成功获得有关该文件的所有信息。

这是我的“下载代码”,它从一个带有该特定文件ID的简单“下载文件”按钮的表单中调用。

$boxkey = "ThisIsMyAPIKey";
$auth_token = $_POST['auth_token'];
$url = "https://www.box.com/api/2.0/files/".$_POST['file_id']."/data";
$header = array("Authorization: BoxAuth api_key=".$boxkey."&auth_token=".$auth_token);

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_exec($ch);

curl_close($ch); 

答案 3 :(得分:-1)

$url = "https://api.box.com/2.0/files/$fileId/content?access_token=$accessToken";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);