如何在Base64Binary元素中通过SOAP发送原始音频文件

时间:2018-09-10 13:22:21

标签: php soap zend-framework base64 soap-client

我有必须在SOAP请求中将音频文件作为base64Binary标签发送的要求。当我将文件作为base64编码的字符串发送时,一切正常,但是由于Base64Binary元素类型,SOAP再次编码为base64。

因此,我尝试通过读取SOAP请求并希望自动进行编码来发送原始音频文件。但是请求从未创建,因为原始音频文件内容无法以XML格式放置,因此必须将其编码为base64。

用于读取文件的PHP代码

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

WSDL中的SOAP文件数据标记

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

我正在使用Zend_Soap_Client将SOAP请求发送到SOAP服务器。

因此,在将原始文件内容发送到SOAP客户端时,任何人都可以帮助我找到我的错误,以便base64Binary仅进行编码,而目前尚无法这样做?

0 个答案:

没有答案