Как отправить необработанный аудиофайл через SOAP в элемент Base64Binary - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть требование, где я должен отправить аудиофайл в запросе SOAP в виде тега base64Binary. Когда я отправлял файл как строку в кодировке base64, все работало нормально, но SOAP снова кодирует в base64 из-за типа элемента Base64Binary.

Итак, я попытался отправить необработанный аудиофайл, прочитав запрос SOAP и надеясь, что кодирование произойдет автоматически. Но запрос так и не был создан, так как содержимое необработанного аудиофайла не может быть помещено в XML, его необходимо кодировать в base64.

PHP код для чтения файла

private function getFileData($filePath)
{
        $fileHandle = fopen($filePath, 'r');
        $fileSize = filesize($filePath);
        $fileContents = fread($fileHandle, $fileSize);
        fclose($fileHandle);
        return $fileContents;
}

Тег данных файла SOAP из WSDL

<xsd:element name="fileData" type="xsd:base64Binary" minOccurs="1" maxOccurs="1" />

Я использую Zend_Soap_Client для отправки SOAP-запроса на SOAP-сервер.

Так что кто-нибудь может помочь мне в этом, чтобы найти мою ошибку в этом при отправке необработанного содержимого файла клиенту SOAP, чтобы base64Binary выполнял только кодирование, которое в настоящее время не выполняется?

...