1
votes

Although there are answers out there, none seem to work. How do I set a node attribute in PHP SoapClient? At the moment I have:

array("BinaryImage" => array("_" => $imgarr, "xsi:type" => "base64Binary")

($imgarr) is a base64 encoded image file.

However when I use this, it returns

<ns1:binaryimage>QXJyYXk=</ns1:binaryimage>

when using $client->__getLastRequest(); so the data is obviously sending wrong.

I also get this Notice:

Notice: Array to string conversion in /var/www/vhosts/propertylogic.net/httpdocs/soap_feed/property24/add_property.php on line 303

However if I just send as:

array("BinaryImage" => $imgarr)

The SOAPClient receives the data correctly, however then gives me a "Buffer" error.

Any help would be appreciated.

1

1 Answers

0
votes

Basically, the WSDL defines it to baseEncode, so I was trying to a), baseEncode twice and b) baseEncode an array when trying to define the attribute. If the WSDL defines that it is a base64Binary field, just pass the raw data and it will do all the work for you. Hope this helps other people.