The Content tables are considerably more complex than Attachments. The file content is held in the ContentVersion
object; one ContentDocument
has one or many versions, as well as an arbitrary number of ContentDocumentLink
records connecting it to records to which it is shared.
Supposing that you already have the Id of a ContentDocument
attached to some record or another, you can get the relevant file content in SOQL:
SELECT VersionData FROM ContentVersion WHERE ContentDocumentId = :myId AND IsLatest = true
The ContentVersion
object reference may be useful.
If you need to acquire files that are attached to a specific object in Salesforce, you'd need to first perform a query against ContentDocumentLink
and filter upon LinkedEntityId
with the Id of the record-attached-to. The ContentDocumentLink
field ContentDocumentId
will then let you perform the above query against ContentVersion
.