2009-12-15 82 views
0

我有一个需要参数类型为“xs:base64Binary”的web服务 - 这是一个存储在数据库中的文件。PHP需要使用需要xs的webservice: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

好吧,所以似乎没有必要使用base64_encode。 file_get_contents已经将其放入所需的格式。

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

0

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

+0

是的,做了转储,我看到$文件已设置。另外,它可以很好地处理非二进制文件... – bugfixr 2009-12-15 00:54:59