我在后端使用salesforce作为我的Android应用程序。
在使用SOQL的某个地方,我得到的回答是这样的:
Article_FileNames":"Template.doc"
Article_FileContentTypes":"application/msword
Article_FileBodys":"/services/data/v35.0/sobjects/Hub_Knowledge_Articlekav/xxxxxxxxxxx/Article_FileBodys
ArticleNumber":"000001010
LastPublishedDate":"2015-12-09T20:34:48.000+0000
现在我没有得到,如何让用户在点击时打开名为“Template.doc”的文件。
如何打开此档案? 是否有任何文件路径或ID将链接此文件名?
任何帮助将不胜感激!
答案 0 :(得分:0)
从Salesforce实例外部可以直接直接的唯一文件类型是图像,这是通过在Externally Available Image
对象本身上设置Document
标志来实现的。
如果您需要使用其他文件类型,您必须自己构建它们以方便最终用户下载。这可以通过查询Document
的实例来完成,Body
将包含Base64编码的文件内容(BodyLength
),该数组的长度(Type
),文件扩展名(Name
),以及文件名本身(SELECT Body, BodyLength, Name, Type FROM Document WHERE Name = 'Template' AND Type = 'doc'
)。
根据您提供的内容,您的SOQL查询将类似于:
function getDados(){
try{
$sql = "SELECT * FROM TMP0145705";
$db = getDB();
if($db){
$stmt = $db->Execute($sql);
$ret = array();
/*while ($arr = $stmt->FetchRow()) {
print_r($arr);
echo "<hr>";
}*/
while(!$stmt->EOF){
$ret[] = $stmt->fields;
$stmt->MoveNext();
}
echo '{"ret": ' . json_encode($ret) . '}';
}
$db = null;
}catch(Exception $e){
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
从那里,你应该拥有在内存中构建文件所需的一切。