2009-12-15 119 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