0

フォルダ グリッド API を使用してファイルをアップロードしようとしています。2つのステップがあります。

  1. ファイルのプロビジョニングを呼び出して、GUID を使用して場所を取得します。
  2. PUT を使用して実際のファイルをアップロードします。

最初の呼び出しを実行して、タイプの場所を取得できます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 = array(
  'fg-eap: false',
  'fg-md5:'.md5_file($file),
  'Content-Type: binary/octet-stream'
);

また、こちらのクエリに応えて、更新された PHP クライアントのサンプルをAPI ドキュメントのこちらに掲載しました。

于 2013-06-04T20:16:58.950 に答える