【发布时间】:2011-02-28 11:49:38
【问题描述】:
我必须从我的 PHP 客户端向 WCF 主机发送一个字节数组(编码照片)。当我在 PHP 中对我的数组执行 var_dump() 时,我得到一个数组 [2839],这没问题,但在服务器端调试时,我看到接收到的数组只有字节 [5]...知道如何修复是吗?
我用过这样的代码
$file = file_get_contents($_FILES['Filedata']['tmp_name']);
$byteArr = str_split($file);
foreach ($byteArr as $key=>$val) { $byteArr[$key] = ord($val); }
$client = new SoapClient('http://localhost:8000/MgrService?wsdl',
array(
'location' => 'http://localhost:8000/MgrService/SOAP11',
'trace' => true,
'soap_version' => SOAP_1_1
));
$par1->profileId = 13;
$par1->photo = $byteArr;
$client->TestByte($par1);
正如我之前在 wcf 主机上写的那样,我只得到 byte[5] :/ 也许它需要一些解码来正确的肥皂序列化?我应该使用 Base64 解码还是什么?
一般我只想将发布的文件上传到 c# 函数,以 byte[] 作为参数:/帮助
哦,这个函数的 wsdl 部分看起来像这样
<xs:element name="TestByte">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="photo" nillable="true" type="xs:base64Binary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
【问题讨论】: