我有一个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
同样有问题的是,如果我对文本文件进行编码,它似乎可以工作,但当然它是编码的,并且一旦下载并再次查看就会变成垃圾(即,文本被编码并且似乎没有被解码服务器)。
答案 0 :(得分:0)
据我所知,base64_encode()
应该做的工作。
你是100%肯定$ file包含的东西吗?你有转储吗?
答案 1 :(得分:0)
好的,所以似乎没有必要使用base64_encode。 file_get_contents已将其置于所需格式。
此外,问题是因为我的maxArrayLength服务器端配置设置太低。