目的:
我想使用multipart / form-data发送多个图像。下面是我的代码片段。
问题:
在一台PC上,多部分附件由正确的MIME标头Content-Type:image / jpeg发送,但在另一台PC上,MIME标头是Content-Type:application / octet。
问题:
如何强制cURL为MIME内容设置正确的Content-Type标头?
$ch = curl_init();
$params = array('name' => '@D:\globe.jpg');
$base_url = "https://example.com"."?".varEncode($test_data);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_URL,$base_url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
答案 0 :(得分:16)
使用CURLOPT_HTTPHEADER选项:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: image/jpeg"));
因此,请指定专门用于文件上传的Content-Type标头,请使用:
$params = array('name'=>'@D:\globe.jpg;type=image/jpeg');
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);