我正在使用SOAP將Drupal/PHP模塊上傳到Taleo(Talent Management)數據庫。這適用於常規數據,如文本和日期,但不適用於文件。肥皂:上傳二進制數據
手冊顯示文件附件的例子:
createAttachment Test Case:
<soapenv:Header/>
<soapenv:Body>
<urn:createAttachment>
<in0>webapi-5616904436472928038</in0>
<in1>15</in1>
<in2>test1.docx</in2>
<in3>test1.docx</in3>
<in4>application/vnd.openxmlformatsofficedocument.
wordprocessingml.document</in4>
<in5>
<!--type: base64Binary-->
<array>JVBERi0xLjQNJeLjz9MNCjYgMCBvYmogPDwvTGluZWFyaX==</array>
</in5>
</urn:createAttachment>
</soapenv:Body>
</soapenv:Envelope>
所以我做了一個PHP文件是這樣的:
// Send attachment
$fileName = drupal_get_path('module', 'taleo') . '/test.txt';
$rawFile = fread(fopen($fileName, "r"), filesize($fileName));
$B64File = base64_encode($rawFile);
$params = array(
'in0' => $session,
'in1' => $candidate_id,
'in2' => 'test.txt',
'in3' => 'test.txt',
'in4' => 'text/plain',
'in5' => $B64File
);
$client_taleo->__call('createAttachment', $params);
當我做 「回聲$ B64File」 我得到這個:RmlsZSB1cGxvYWQgd2l0aCBEcnVwYWwgIQ ==,所以文件正在被讀取正確。
但我總是得到這樣的錯誤:
錯誤:soapenv:Server.generalException-attBinDataArr爲空。
任何想法?
確實,但你有什麼想法,PHP代碼應該是什麼樣子?我嘗試了一切:('in5'=> $ B64File,如何封裝數組標籤? –
編輯添加了更多的代碼。 – Jaif
嗯,已經試過:( –