0

尝试使用文件夹网格 api 上传文件。有2个步骤。

  1. 调用配置文件以获取带有 guid 的位置。
  2. 使用 PUT 上传实际文件。

我能够进行第一次通话并获得 type 的位置https://files.foldergrid.com/upload/xxx。然后我尝试使用这个作为我的位置上传文件并继续获取

< HTTP/1.1 100 Continue
* Empty reply from server
* Connection #0 to host files.foldergrid.com left intact
* Closing connection #0

从服务器不确定我错过了什么?这是我正在使用的代码:

调用配置 api 后,我返回一个存储在 $url = ' https://files.foldergrid.com/upload/xxx ' 中的 url,并且我有要在文件 $file = 中上传的文件的路径一些文件路径'然后我调用了以下方法:

    public function putFile($file,$url) {

    $headers = array(

    'fg-eap: false',
    'fg-md5:'.md5_file($file),

        );

    $fh = fopen($file, "rb");

    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url);

    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);

    curl_setopt($curl, CURLOPT_NOBODY, true);
    curl_setopt($curl,CURLOPT_PUT,true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);


    curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_INFILE, $fh);
    curl_setopt($curl, CURLOPT_INFILESIZE, filesize($file));

    curl_setopt( $curl, CURLOPT_VERBOSE, true );                   

    $result = curl_exec($curl);

    fclose($fg);

    curl_close($curl);
    return $result;
    }
4

1 回答 1

0

除了 Content-Type 标头之外,您发布的代码看起来拥有所需的一切。尝试将您的 headers 数组设置为:

$headers = array(
  'fg-eap: false',
  'fg-md5:'.md5_file($file),
  'Content-Type: binary/octet-stream'
);

此外,为响应您的查询,我们在此处的 API 文档下发布了更新的 PHP 客户端示例。

于 2013-06-04T20:16:58.950 回答