--- title: "File Upload Control" slug: "file-upload-control" updated: 2025-12-19T22:51:16Z published: 2025-12-19T22:51:16Z canonical: "docs.processmaker.com/file-upload-control" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.processmaker.com/llms.txt > Use this file to discover all available pages before exploring further. # File Upload Control The File Upload control allows users to upload one or more files from their local computer or accessible network location. Users can either drag and place the files on the control or select a button from which to locate the files for upload. When a file is uploaded to a Screen during an in-progress Case, then submitted, that file can be downloaded from the **Files** tab in that Case summary. > - This control is only available for Form-type Screens. See [Screen Types](/v1/docs/screens#screen-types). > - The File Upload control is not available in Preview mode. Watch the following product tour to learn how to use a File Download control. [Embedded content](https://app.supademo.com/embed/WzJe9z1lrJSahptkf7z3_) > Need a solution to upload multiple files to a Screen that limits the number of files that maybe uploaded to a File Upload control? See how to use a [Loop](/v1/docs/loop-control) control to [limit how many files may be uploaded to a Screen](/v1/docs/example-loop-and-file-upload-controls-to-limit-uploaded-files). --- ## Add the Control to a Screen **Permissions** Your user account or group membership must have the following permissions to design a Screen unless your user account has the **Make this user a Super Admin** setting selected: - Screens: Edit Screens - Screens: View Screens See the [Screens](/v1/docs/permission-descriptions-for-users-and-groups#screens) permissions or ask your Administrator for assistance. Follow these steps to add this control to the [Screen](/v1/docs/screens): 1. [Create a new Form-type Screen](/v1/docs/create-a-new-screen) or [edit an existing one.](/v1/docs/manage-screens#edit-a-screen) 2. From the Controls Menu on the left, expand the **Files** category, and then locate the **File Upload** icon ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/2382f530-9e78-468c-a709-9e2f4ec1e577.png). 3. Drag and drop the control to the Screen Builder canvas. Existing controls in the Screen will adjust positioning based on where you drag the control. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/ced34af8-8d95-4cce-8e4c-c6950400c3c9.png) 4. Configure the File Upload control. See [Settings](/v1/docs/file-upload-control#inspector-settings). The following screen uses a **File Upload** control where users can upload invoice documents. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/1935d8a2-50b3-4161-9c2b-312f08b75120.png) --- ## Settings The File Upload control has the following configurable settings in the Properties Panel: - [**Variable** panel](/v1/docs/file-upload-control#variable-panel-settings) - [**Configuration** panel](/v1/docs/file-upload-control#configuration-panel-settings) - [**Advanced** panel](/v1/docs/file-upload-control#advanced-panel-settings) - [**Accessibility Panel**](/v1/docs/file-upload-control#accessibility-panel-settings) --- ### Variable Panel Settings Expand the **Variable** panel from the Properties Panel on the right to configure the following settings: #### Variable Name Enter the name of the uploaded file. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/3f8e3ed6-eda2-4a52-9f5e-c8af295eee73.png) #### Label Edit the default label that displays for this control if necessary. **New File Upload** is the default value. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/f4f628fe-89f5-4af3-ada2-61413e7cd1d3.png) #### Upload Multiple Files Select the **Upload multiple files** setting to allow the Screen user to upload multiple files at once using this File Upload control. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/ca52ebfa-542d-431b-8f19-b54b70918b17.png) #### Required Select the **Required** setting to require a file be uploaded before the Screen can be submitted. This setting is not selected by default. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/6c5974db-d8c4-4ff2-8657-d7ab445dd60e.png) --- ### Configuration Panel Settings Expand the **Configuration** panel from the Properties Panel on the right to configure the following properties: #### Accepted File Formats Enter the file type(s) this control accepts for upload by referencing their [MIME types](https://en.wikipedia.org/wiki/Media_type#Common_examples). Separate multiple MIME types with commas (`,`). One space after each comma is acceptable. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/2da3a7a0-821a-4d2f-bc0e-97dca943ef10.png) **Accepted File Formats**: The File Upload control supports the following formats: `.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .jpg, .jpeg, .png, .gif, .mp3, .mp4, .csv, .svg` These extensions should be mapped to their corresponding MIME types. For example: ```plaintext application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, text/plain, image/jpeg, image/png, image/gif, audio/mpeg, video/mp4, text/csv, image/svg+xml ``` **Example:** To successfully upload `.DOCX` files, add the MIME type for `.DOCX` to the file accepted configuration: ```plaintext application/vnd.openxmlformats-officedocument.wordprocessingml.document ``` > [!WARNING] > Note: > > When using the File Upload control, PDF files are scanned for potentially harmful content before being accepted. Uploads will be blocked and users will see a "dangerous content" warning if the PDF includes any of the following: > > - `/JS` or `/JavaScript` objects > - `/AA` (Additional Actions) entries > - `/OpenAction` entries that trigger scripts > - `/Launch`, `/RichMedia`, or `/Movie` annotations > - Embedded file streams containing executable or suspicious MIME types > > These restrictions are in place to protect users from uploading PDFs that could execute malicious code. --- ### Advanced Panel Settings Expand the **Advanced** panel from the Properties Panel on the right to configure the following settings: #### Visibility Rule Specify an expression that indicates the condition(s) under which this control displays. See [Expression Syntax Components](/v1/docs/feel-expression-syntax#show-or-hide-screen-builder-controls). If this setting does not have an expression, then this control displays by default. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/19590984-912d-4f6e-b228-f51a845939b1.png) For example, this control displays if the variable value **tip** is **1**. For a detailed example of the Visibility Rule setting, see [Show or Hide Controls Based on Button Selection](/v1/docs/example-show-or-hide-controls-based-on-button-selection). Note the following regarding how to use visibility rules: - To make this control hidden until another control contains a value, enter the **Variable Name** setting value of that control to this control's **Visibility Rule** setting. - [Visibility rules override custom CSS settings](/v1/docs/screen-design-best-practices#visibility-rules-override-custom-css-settings). #### Device Visibility Select on which device types this control displays: - **Desktop:** The control displays only on desktop devices. Enable the **Show for Desktop** toggle key. - **Mobile:** The control displays only on mobile devices. Enable the **Show for Mobile** toggle key. - **Both:** The control displays on both desktop and mobile devices. Both toggle keys are enabled by default. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/cd74ad4d-ba98-491a-ad6b-6ad9964a44ca.png) #### CSS Selector Name Enter the value to represent this control in custom CSS syntax when in [Custom CSS](/v1/docs/custom-css#add-custom-css-to-a-processmaker-screen) mode. As a best practice, use the same **CSS Selector Name** value on different controls of the same type to apply the same custom CSS style to all those controls. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/dec9b01d-2326-4a64-8ef4-f3b52b0ef81e.png) Then, use this name in the [Custom CSS](/v1/docs/custom-css#apply-css-to-specific-processmaker-screen-controls) feature to apply CSS styling to this control as follows: ```plaintext [selector='Submit Form'] {    color: blueviolet; } ``` See the following best practices regarding custom CSS in Screens: - [Editing a CSS name to represent this control in custom CSS syntax](/v1/docs/screen-design-best-practices#css-selector-naming-best-practice) - [Visibility rules override custom CSS settings](/v1/docs/screen-design-best-practices#visibility-rules-override-custom-css-settings) --- ### Accessibility Panel Settings The **Accessibility** panel centralizes settings that enhance screen-reader compatibility and overall usability. ARIA Label setting persists through import, copy/paste, versioning, and upgrades, supporting a more inclusive and standards-aligned Screen Builder experience. #### Aria Label Enter the string that provides a text alternative to this control for the following purposes: - Assistive technology, such as screen readers, read the **Aria Label** setting value. - This control has a visual indication of its purpose, such as a controlthat uses a graphic instead of text, but still needs to clarify that purpose for anyone who cannot access the visual indication. The **Aria Label** setting value replaces the [**Label** setting](/v1/docs/file-upload-control#label) value. For example, if a control has both a **Label** setting value and an **Aria Label** setting value, assistive technology only uses the **Aria Label** setting value. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/b8bfe70c-2dba-4403-a6de-cb8968fe6b2b.png) #### Tab Order Tab order determines the sequential navigation order to navigate a Screen's controls using a keyboard interface. Assistive technology users often use a keyboard for navigation. [See best practices for setting the tab order for a Screen's controls](/v1/docs/screen-design-best-practices#tab-order-for-keyboard-navigation). Enter the number for the sequential keyboard navigation order that this control takes focus amongst other controls in this Screen. ![](https://cdn.document360.io/2d311614-fcb7-4424-8b4c-d4d3091eebeb/Images/Documentation/fba75883-7130-4656-af95-0a0b84eb4b6e.png)