PHP使用需要xs:base64Binary的Web服务

PHP使用需要xs:base64Binary的Web服务,php,web-services,Php,Web Services,我有一个Web服务,它需要一个xs:base64Binary类型的参数——这是一个要存储在数据库中的文件 我试图使用PHP5的原生webservice类来使用该服务。我试过几件事: // Get the posted file $file = file_get_contents($_FILES['Filedata']['tmp_name']); // Add the file, encoding it as a base64 $parameters = array("fileBytes" =&

我有一个Web服务,它需要一个xs:base64Binary类型的参数——这是一个要存储在数据库中的文件

我试图使用PHP5的原生webservice类来使用该服务。我试过几件事:

// Get the posted file
$file = file_get_contents($_FILES['Filedata']['tmp_name']);

// Add the file, encoding it as a base64
$parameters = array("fileBytes" => base64_encode($file));

// Call the webservice
$response = $client->attachFile($parameters); 
结果是一个错误,表示请求错误。如果该文件是一个文本文件,并且我没有base64_编码,那么它可以正常工作。发布二进制文件(如图像)时会出现问题

有人知道这里的诀窍吗

编辑1

还有一个问题是,如果我对文本文件进行编码,它似乎可以工作,但当然它是经过编码的,一旦下载并再次查看,它就会变成垃圾文件,也就是说,文本是经过编码的,而服务器似乎没有对其进行反编码

据我所知,base64_encode应该负责这项工作。
您是否100%确定$file包含某些内容?你倒垃圾了吗

好的,看来没有必要使用base64_编码。文件内容已将其转换为所需格式


此外,问题是因为我对maxArrayLength的服务器端配置设置太低。

是的,完成了转储,我看到$file已设置。另外,它可以很好地处理非二进制文件。。。