使用cURL发送图像文件和xml

时间:2013-12-03 01:55:32

标签: php xml curl

我有以下代码可以正常发送$ xml。但是,当我尝试添加要与xml一起发送的文件时,我收到错误。我尝试使用postData数组,但后来得到一个数组到字符串错误。我现在的方式有效,但它只发送xml而不是文件。关于如何使用postfields发送@file的任何想法?任何帮助表示赞赏

$header = array('Content-Type: multipart/form-data');
$xml['xml'] = '<UploadPhoto>';
$xml['xml'] .= '<ID>12345</ID>';
$xml['xml'] .= '<PhotoID>myphoto</PhotoID>';
$xml['xml'] .= '<Filename>myphoto.jpg</Filename>';
$xml['xml'] .= '<Instructions>Need cheeks less rosy</Instructions>';
$xml['xml'] .= '</UploadPhoto>';

$postData = array(
 'file' => '@/myphoto.jpg',
 'xml'  => $xml
);

$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, "http://www.myurl.com/api");
curl_setopt($connection, CURLOPT_HTTPHEADER, $header);
curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($connection, CURLOPT_POST, 1);
curl_setopt($connection, CURLOPT_POSTFIELDS, $xml);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
set_time_limit(108000);

$output = curl_exec($connection);
curl_close($connection);
print_r($output);

1 个答案:

答案 0 :(得分:0)

curl_setopt($connection, CURLOPT_POSTFIELDS, http_build_query($postData));