PHP使用需要xs:base64Binary的webservice

时间:2009-12-15 00:34:55

标签: php web-services

我有一个webservice,它需要一个类型为“xs:base64Binary”的参数 - 这是一个存储在数据库中的文件。

我正在尝试使用PHP 5的本机Web服务类来使用该服务。我尝试了一些事情:

// 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_encode,它可以正常工作。发布二进制文件(如图像)时出现问题。

有人知道这里的诀窍吗?

编辑1

同样有问题的是,如果我对文本文件进行编码,它似乎可以工作,但当然它是编码的,并且一旦下载并再次查看就会变成垃圾(即,文本被编码并且似乎没有被解码服务器)。

2 个答案:

答案 0 :(得分:0)

据我所知,base64_encode()应该做的工作。 你是100%肯定$ file包含的东西吗?你有转储吗?

答案 1 :(得分:0)

好的,所以似乎没有必要使用base64_encode。 file_get_contents已将其置于所需格式。

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