# Files

> This page is about FlutterFlow (the app builder you use by describing your app), not FlutterFlow Studio.

URL: https://docs.flutterflow.io/ffx/files

Ask the agent to let your app store photos and documents, and then check each folder's rules and upload or download files in Backend.

To let people add photos and documents in your app, ask the agent in a [thread](https://docs.flutterflow.io/ffx/glossary#thread). After you push the change, **Backend › Files** lists your app's folders and the files saved in each, and **Rules** shows what each folder takes and who can open its files. Only owners and developers can see **Backend › Files**.

## What to ask {#what-to-ask}

Your app keeps its files in folders, and each folder has its own rules. In your request, say what people save, which screens use it, who can open the files, and which kinds and sizes of file to accept:

> Example request: "Let people add a photo to each expense. Only the person who added an expense can open its photo. Accept JPEG, PNG, and HEIC photos up to 10 MB."

> Example request: "Let people attach a PDF receipt when they add an expense, and show a link to it on the expense screen."

To change how an existing folder works, open **Backend › Files › Rules**, and then click **Ask for a change** at the end of the page. A new thread opens with "Change how the app stores files: " in the composer, for you to finish and send.

## Agent questions {#what-the-agent-may-ask-you}

If the agent shows a **Question** or **Approval** card while it works, read the card and [answer the agent](https://docs.flutterflow.io/ffx/answer-the-agent) to continue.

## Review {#check-the-result}

Before you push the change, check the screens that save and show files.

After the agent finishes, read the turn's [**Summary**](https://docs.flutterflow.io/ffx/what-changed#summary) and review its [**Changes**](https://docs.flutterflow.io/ffx/what-changed#changes-tab). Check the affected screens in **Screens**, and try the change in **Preview**. If the change uses records or sign-in, test it with [the thread's own data in **Data**](https://docs.flutterflow.io/ffx/thread-data).

After you push a backend change, check the result in **Backend**.

## Push {#push-it}

To add the folders and their rules to your app, [push the thread](https://docs.flutterflow.io/ffx/push).

## Access rules {#read-the-rules}

**Backend › Files › Rules** shows one card for each folder, under the folder's name. You can't edit the rules there. To change them, ask in a thread.

Each card shows the following rows. **Who can upload** and **Who can delete** show only when the folder has access rules.

| Row | What it says |
| --- | --- |
| **Who can open** | **Anyone with the link** for a public folder. For a private folder, the folder's rule, such as **Signed-in people** or **Only the person it belongs to**. |
| **Who can upload** | Who can add files to the folder from your app. |
| **Who can delete** | Who can delete the folder's files from your app. |
| **Kinds of files** | The kinds of file the folder takes, such as **JPEG, PNG and WebP**, **Any image** or **Any kind of file**. |
| **Largest file** | The largest file the folder takes, such as **10 MB**. |
| **Unused files** | The folder's setting for a file that no record points to anymore, such as **Unused files deleted after 7 days** or **Kept forever**. Whatever it says, FlutterFlow doesn't delete unused files on its own. |

The rule values mean the same as they do for a table. See [Access rules](https://docs.flutterflow.io/ffx/change-tables#access-rules).

<Mock name="files-rules" alt="Backend › Files › Rules with one folder's card and Ask for a change at the end." />

## Find a file

**Backend › Files** lists your app's folders. Each folder shows its **Files** count and its **Access**: **Public** or **Private**. To see a folder's files, click the folder. They're listed newest first, each with its **File name**, **Size**, **Uploaded by**, **Uploaded** date, and **Access**.

To see a file's details, click its row. The file's sheet shows its kind and size, **Folder**, **Uploaded by**, **Uploaded**, and **Access**.

<Mock name="files-table" alt="A folder in Backend › Files with a few files in its table, and Upload." />

## Upload a file {#upload}

A file that you upload in **Backend › Files** goes into your app's [live data](https://docs.flutterflow.io/ffx/glossary#live-data). To upload files, follow these steps:

1. In **Backend › Files**, click **Upload**, and then choose one or more files.
2. If your app has more than one folder, choose a **Folder**.
3. In **Uploaded by**, choose who the files belong to: **You** (the [builder account](https://docs.flutterflow.io/ffx/glossary#builder-account)) when your app has one, **No one**, or a person from **People**.
4. Click **Upload**.

## Download a file

To download a file, click **Download** at the end of its row, or click **Download** in its sheet.

## Rename or delete a file {#manage-files}

You can't rename or delete a file in **Backend › Files**.

## Next steps {#then}

To manage the records that use your files, see [Records](https://docs.flutterflow.io/ffx/records). To change a table's file fields, see [Tables and fields](https://docs.flutterflow.io/ffx/change-tables).

## Troubleshooting {#if-something-goes-wrong}

For problems with records or files, see [Troubleshoot data](https://docs.flutterflow.io/ffx/troubleshoot-data). If the change can't reach your app, see [Troubleshoot pushing](https://docs.flutterflow.io/ffx/troubleshoot-push).
