从salesforce访问该文件

时间:2016-05-12 07:47:14

标签: android salesforce

我在后端使用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将链接此文件名?

任何帮助将不胜感激!

1 个答案:

答案 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() .'}}';
    }
}

从那里,你应该拥有在内存中构建文件所需的一切。