使用CURL发送图像

时间:2016-01-27 07:29:07

标签: php curl

是否可以发送带有使用ImagePNG输出的CURL的图像?

ob_start();
imagepng(imagecreatetruecolor(800, 600));
$file = ob_get_clean();

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $remoteHost);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, [
    'file1' => ?
]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($curl);
curl_close($curl);

谢谢!

1 个答案:

答案 0 :(得分:0)

您只需要在文件路径前放置@字符,路径必须是完整路径。

curl_setopt($curl, CURLOPT_POSTFIELDS, array(
    'file1' => '@' . '/var/tmp/img.png'
));

如果请求接受POST主体内部的图像作为原始数据,那么您可以将其放在POST内,并提及它所需的任何内容类型。

$image_data = file_get_contents('/var/tmp/img.png');
curl_setopt($curl, CURLOPT_POSTFIELDS, $image_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));  // just an example