PHP SoapClient - Атрибуты узла - PullRequest
1 голос
/ 13 июля 2011

Хотя есть ответы, но ни один из них не работает. Как мне установить атрибут узла в PHP SoapClient? На данный момент у меня есть:

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

($ imgarr) - файл изображения в кодировке base64.

Однако, когда я использую это, он возвращает

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

при использовании $ client -> __ getLastRequest (); поэтому данные явно отправляются неверно.

Я также получаю это уведомление:

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

Однако, если я просто отправлю как:

array("BinaryImage" => $imgarr)

SOAPClient получает данные правильно, но затем выдает ошибку "Buffer".

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 14 июля 2011

По сути, WSDL определяет его как baseEncode, поэтому я пытался а) дважды baseEncode и б) baseEncode массив при попытке определить атрибут.Если WSDL определяет, что это поле base64Binary, просто передайте необработанные данные, и он сделает всю работу за вас.Надеюсь, что это помогает другим людям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...