這是聯合xmlrpc問題。我有一個來自.wav文件的數據串。我讀入file_get_contents()
中的文件,然後我必須將該信息提交給xmlrpc服務器(我沒有創建)。它採用base64中的.wav音頻數據。我試過使用base64_encode()
,但是它也返回「字符串」類型。我認爲This php guide對xmlrpc_set_type
會有所幫助,但是這會返回一個包含一個包含base64編碼字符串的數組的對象。使用php將類型「字符串」轉換爲base64
有沒有辦法將我正在使用的字符串設置爲base64類型?
這是我迄今爲止,即產生錯誤:
$data = base64_encode(file_get_contents('myfile.wav', NULL, NULL, 44));
$request = xmlrpc_encode_request('service',array('AudioData'=>$data));
我曾經嘗試這樣做,以及:
$data = file_get_contents('myfile.wav', NULL, NULL, 44);
$request = xmlrpc_encode_request('service',array('AudioData'=>xmlrpc_set_type($data, 'base64')));
這是我得到的迴應:
["faultCode"]=> int(0) ["faultString"]=> string(155) "request contains string value where base64 expected
編輯:
我知道base64不是一種類型。很明顯,我使用的服務器不會除了一串base64編碼數據,所以我的問題是如何做到這一點。
沒有在PHP數據類型的base64。 Base64是二進制數據的字符串表示。 – nkr 2012-08-17 13:35:46
我有點想,它是有道理的,但是當我傳遞一串base64編碼數據時,Web服務會因爲它是一個字符串而嚇壞了? – Ryan 2012-08-17 13:38:08
嗯,這個錯誤顯然很奇怪,因爲base64編碼總是以字符串形式出現。我猜它不能識別你的bas64字符串?你確定這是你的最終造成的問題嗎? – Sammaye 2012-08-17 13:45:23