Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Soap:上传二进制数据_Soap_Upload_Base64_Taleo - Fatal编程技术网

Soap:上传二进制数据

Soap:上传二进制数据,soap,upload,base64,taleo,Soap,Upload,Base64,Taleo,我正在制作一个Drupal/PHP模块,使用SOAP将信息上传到Taleo(人才管理)数据库。这适用于文本和日期等常规数据,但不适用于文件 本手册显示了文件附件的示例: createAttachment Test Case: <soapenv:Header/> <soapenv:Body> <urn:createAttachment> <in0>webapi-5616904436472928038</in0> <in1>15

我正在制作一个Drupal/PHP模块,使用SOAP将信息上传到Taleo(人才管理)数据库。这适用于文本和日期等常规数据,但不适用于文件

本手册显示了文件附件的示例:

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>
当我执行“echo$B64File”时,我得到以下结果:rmlszsb1cgxvywqgd2l0acbecnvywwwgiq==,因此文件的读取是正确的

但我总是犯这样的错误:

错误:soapenv:Server.generalException-attBinDataArr为空


有什么想法吗?

您忘了将base64数据封装在数组标记中

<array>JVBERi0xLjQNJeLjz9MNCjYgMCBvYmogPDwvTGluZWFyaX==</array>

很明显,我必须对数组标记做些什么,这是肯定的

上面的答案值得一次“向上投票”,所以我给了它一次。但是我自己找到了正确的答案。。。经过几秒钟的“逻辑”思考:


确实如此,但是您知道PHP代码应该是什么样子吗?我尝试了一切:('in5'=>$b64文件,如何封装数组标记?相同的错误:“错误:soapenv:Server.generalException-attBinDataArr为null。”再次更新,尽管我看到您在我的帖子=”之前已经找到了答案)
<array>JVBERi0xLjQNJeLjz9MNCjYgMCBvYmogPDwvTGluZWFyaX==</array>
$params = array(
    'in0' => $session,
    'in1'   => $candidate_id,
    'in2'   => 'test.txt',
    'in3'   => 'test.txt',
    'in4'   => 'text/plain',
    'in5'   => array('array' => $B64File)
);
'in5'   => array('array' => $B64File)