在Salesforce Site.com的站点下载文件或显示图片(Attachment)
有时候我们需要在Salesforce页面下载存放为Attachment的文件;或者我们需要把存成Attachment的图片显示在页面上。
内部站点
如果我们文件为Attachment,在Salesforce Internal (即使用Salesforce账户登录的,非Digital Experience, Site.com),则可以使用
<a href="{!URLFOR($Action.Attachment.Download, attachmentId)}">File Name</a>
下载文件。
或者使用
<img src="{!URLFOR($Action.Attachment.Download, attachmentId)}" />
显示图片。
如果是File,则可以使用Url.getFileFieldURL(entityId, fieldName)
Site.com
Site.com上的则不能用上面的方法,使用的话会直接报错。这时可以通过Salesforce提供的文件下载api /servlet/servlet.FileDownload?file=xxxx~18
,不过要注意,一定要使用Salesorce Internal Url,使用Site.com的相关url肯定也会报错。
- 首先在后台获取 Salesforce Instance Url 或 Org Domain Url。例如:
String orgUrl = Url.getOrgDomainUrl().toExternalForm()
- 将其传到前台,拼接成下载地址:
<a href="{!orgUrl + '/servlet/servlet.FileDownload?file=' + attachment.Id}">File Name</a>