Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


PIPEFORCE Forms also supports file uploads and file previews.

In order to To make a widget in a form a file an upload widget, you have need to do follow these steps:

Step 1: Add a content reference object to your Form Schema

The widget which should become the upload widget must be declared of type object in the Form Schema. The objectmust, in term must turn, contain the properties for the content reference declaration properties . See the example below where the widget with id myFile will be declared by a content reference object.


For more details see:


Implementation Details


  1. In case a form schema contains a content reference section, a file chooser is rendered in the form.
    See Content References (ResourcesFiles).

  2. The user can click this file chooser and select the local file to be uploaded.

  3. After the user has selected the file, the browser creates a temp property in the property store at location global/tmp/{randomUuid}.

  4. The browser then immediately starts the file upload and adds it as attachment to this tmp property. If there are more than one file to be uploaded, all files will be added to this property as attachment. The name of the attachment will be set to the original name of the file.
    See Property Attachments.

  5. All content reference fields will be updated by the browser as followed:

    1. The name field will be set to the original file name.

    2. The contentLength will be set to the size of the file.

    3. The contentType will be set to the type of the file (if possible).

    4. The contentEncoding for will be set to outbound-url.

    5. The content field will be set to the PIPEFORCE URI pointing to the tmp property. For example:

  6. If finally the user submits the form, all form data including the updated content reference part will be stored in the property store at the output path as configured by the output attribute in the Form Config.

  7. The property.created event is fired and the listening pipeline is called. This pipeline can then further process the form data and move the uploaded files to their final destination if required by moving the tmp property + updating the PIPEFORCE URI in the form data with the final location.
    See .