4

以下のデータをcurlヘッダーで送信したい。

Content-Type: multipart/form-data; boundary=---------------------------28854217951032752725060171

以下のコードを使用しましたが、動作しないようです

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type: multipart/form-data; boundary=---------------------------28854217951032752725060171'));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch); 
$last = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$info = curl_getinfo($ch);
return array($result,$last,$info);
curl_close($ch);

境界値を送信する正しい方法は何ですか。
Ps : 28854217951032752725060171 は定数値です。

4

1 に答える 1

2

この値を手動で送信する必要はありません。Curl はこれを単独で処理します。

編集:

CURLOPT_POSTFIELDSContent-Type配列を受け入れることができ、必要な境界と同様に自動的にアタッチします。以下はPHP ドキュメントからの引用です。

値が配列の場合、Content-Type ヘッダーは multipart/form-data に設定されます。PHP 5.2.0 以降、ファイルが @ 接頭辞付きでこのオプションに渡される場合、値は配列でなければなりません。

例えば:

$data = array(
    'name' => 'Foo',
    'file' => '@/absolute/path/to/some/file'
);
于 2013-03-03T08:12:10.443 に答える