2

次の cURL コマンドを PHP に変換しようとしています。

curl -k https://api.box.com/2.0/files/content -H "Authorization: Bearer 8tuuIMsrf3ShyODVdw" -F filename=@txt.txt -F folder_id=0

これが私の試みです:

$url = 'https://api.box.com/2.0/folders/content';
$params['filename'] = '@txt.txt';
$params['folder_id'] = '0';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer ".$this->access_token, "Content-Type: multipart/form"));
$data = curl_exec($ch);
curl_close($ch);

しかし、それは機能していません。なぜ私がやっていることは間違っているのか、コードを変更するために何ができるのかを理解するのを手伝ってくれる人はいますか? ありがとう!!

4

2 に答える 2

2

投稿データに基づいてcURLがこれを処理するため"Content-Type: multipart/form"、オプションからヘッダーを削除してみてください。CURLOPT_HTTPHEADER

ファイルをアップロードしているため、 content-type は自動的に に設定されmultipart/form-data、 ではなく実際に正しいコンテンツ タイプに設定されmultipart/formます。

于 2013-05-09T21:03:23.290 に答える
2

curl -k安全でないことを意味します。次の行を追加します。

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

ドイツ語のマニュアルからの翻訳 (英語版にはこの情報がないことに注意してください):

CURLOPT_SSL_VERIFYPEER が無効になっている場合は、オプション CURLOPT_SSL_VERIFYHOST も無効にする必要があります。

コードの残りの部分は正常に動作するはずです。

于 2013-05-09T21:04:08.823 に答える