如何使用PHP cURL发送具有正确Content-Type的图像?

时间:2010-11-02 04:35:08

标签: php curl

目的:

我想使用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);

1 个答案:

答案 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);