Links

Attachment

Introduction

Version compatibility
This feature was introduced in version 4.72.0 of the JourneyApps Runtime.
The Attachment API can be used in JavaScript/TypeScript (or CloudCode) to populate attachment, photo or signature fields that can bound to components like capture-file, capture-photo, capture-signature, display-file etc.

Syntax

To create an attachment, use the Attachment.create(options) function where options may include
Value
Details
data
Data to create from an ArrayBuffer
base64
Data to create from a base64 string
text
Data to create from a string
mediaType
The MIME type of the file, e.g. image/png or application/pdf
filename
Name of the file to be created.
You need to provide one of data, base64 or text, depending on the type of data you have. You also need to provide either mediaType or filename, or both. If only one is provided, the other will be automatically assumed. For example:
  • if only the filename is given as test.txt, the mediaType will be assumed as text/plain.
  • If only the mediaType is given as text/csv, the filename will be the ID of the object, e.g. 334c3c80-afed-4641-b083-9d1871705a6b.csv.

Example

Consider a variable like the following:
main.view.xml
<var name="sample_pdf" type="attachment" media="application/pdf" />
That PDF can be created like this:
main.js
view.sample_pdf = Attachment.create({base64: "base64 data", mediaType: 'application/pdf', filename: "my_report.pdf"});
Other examples:
main.js
view.textFile = Attachment.create({text: plainText, mediaType: 'text/plain', filename: 'test.txt'});
view.userSignature = Attachment.create({text: svgString, mediaType: 'image/svg+xml'});
view.myImage = Attachment.create({data: imageArrayBuffer, mediaType: 'image/jpeg'});