# File

### Overview

To find the File component, type in "file" or scroll down

<figure><img src="/files/hpWCzFc1MijkRzRY5ZVl" alt=""><figcaption></figcaption></figure>

The file component is interactive as all inputs are, meaning you can click on the field upload a file and then download the existing file

<figure><img src="/files/iITQslPa6QySjI8T1HuC" alt=""><figcaption></figcaption></figure>

### Settings

There are many things you can set up in the file component settings (click on the input to access the settings menu on the right)

#### Connecting storage

Here you can **connect** one of our native integration storages, use Jet Admin's built-in storage, or connect your own using REST API.

<figure><img src="/files/dRSF9JmkJuBpRWvfloCC" alt=""><figcaption></figcaption></figure>

**Multipart Encoding**

Jet allows for multipart file encoding so that you can upload files with more complex data structures. You can enable multipart encoding when configuring the HTTP request for your REST API. See more about REST API [here.](https://docs.jetadmin.io/user-guide/integrations/rest-api)

#### Linking data

You can also reference dynamic values using the *`f`* formula modal or set up a static value (upload file)&#x20;

<figure><img src="/files/6YjwdpdX1jKd2YH9igGS" alt=""><figcaption></figcaption></figure>

### Multiple Files

<figure><img src="/files/0uAUmVIGXHC5aO4kD6Rp" alt=""><figcaption></figcaption></figure>

Let's build an example with multiple file pickers. Follow the steps,

1. Drag and Drop **File Picker** component
2. Choose **Multiple Files**

{% @arcade/embed flowId="rKXFGFKQ4SwEdvUFxHJH" url="<https://app.arcade.software/share/rKXFGFKQ4SwEdvUFxHJH>" %}

### How to use File

There are many use cases for the File component, so here we'll review the most common ones:

#### Uploading to Jet Tables

We'll need a button to execute the action to upload files to Jet Tables (or any other storage). In addition, we might need a table to select the record we'll upload the file onto. This table must have a column with the `File` field type.

<figure><img src="/files/EoBcfscFN6wrCrIGMbEj" alt=""><figcaption></figcaption></figure>

Next, we need to tell the button where the file value will come from. For this, we'll reference the "value" attribute from the `File` filed we dropped on the canvas

{% hint style="success" %}
In this regard, `file` is just another type of Input field so you can perform all the referencing and binding actions as you would with text or other fields
{% endhint %}

To do so, follow the steps:

1. Click on the **File**
2. Click on the `Formula` icon
3. Choose **File**
4. Choose **Value**

<figure><img src="/files/jq8gakxo7kfa15euxRTv" alt=""><figcaption></figcaption></figure>

Now, the button will upload the file and link it to the record we selected in the table.

<figure><img src="/files/bJjqKijT4uGyZZn3mH3a" alt=""><figcaption></figcaption></figure>

#### Displaying files

Now, if we want to **display the file** that is stored in our table, we'll need to follow the same process: go into the `File` component's settings and reference the file field from the selected row in the Table

<figure><img src="/files/fQvy2aB0QGvwWTFftFSd" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.jetadmin.io/user-guide/design-and-structure/components/fields/file.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
