我想在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);
发送边界值的正确方法是什么 P.s:28854217951032752725060171是常数值。
答案 0 :(得分:0)
您无需手动发送此值。 Curl将自己处理这个问题。
修改强>
CURLOPT_POSTFIELDS
可以接受数组,它会自动附加Content-Type
以及所需的边界。以下是PHP文档中的quote:
如果value是数组,则Content-Type标头将设置为 多部分/格式的数据。从PHP 5.2.0开始,如果是文件,则值必须是数组 使用@前缀传递给此选项。
例如:
$data = array(
'name' => 'Foo',
'file' => '@/absolute/path/to/some/file'
);