---
group: Widgets
title: File
weight: 14
---

- **Name:** `file`
- **UI:** File picker button opens media gallery
- **Data type:** File path string

The file widget allows editors to upload a file or select an existing one from the media library. The path to the file will be saved to the field as a string.

## Widget options

For common options, see [Common widget options](/docs/widgets#common-widget-options).

| Name          | Type                  | Default | Description                                                                                                                                              |
| ------------- | --------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| default       | string                | `null`  | _Optional_. The default value for the field. Accepts a datetime string, or an empty string to accept blank input; otherwise defaults to current datetime |
| media_library | Media Library Options | `{}`    | _Optional_. Media library settings to apply when a media library is opened by the current widget. See [Media Library Options](#media-library-options)    |
| media_folder  | string                |         | _Optional_. Specifies the folder path where uploaded files should be saved, relative to the base of the repo                                             |
| public_folder | string                |         | _Optional_. Specifies the folder path where the files uploaded by the media library will be accessed, relative to the base of the built site             |

### Media Library Options

| Name           | Type                   | Default | Description                                                                                                                                       |
| -------------- | ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| allow_multiple | boolean                | `true`  | _Optional_. When set to `false`, prevents multiple selection for any media library extension, but must be supported by the extension in use       |
| config         | string                 | `{}`    | _Optional_. A configuration object that will be passed directly to the media library being used - available options are determined by the library |
| choose_url     | string<br />\| boolean | `true`  | _Optional_. When set to `false`, the "Insert from URL" button will be hidden                                                                      |

## Example

<CodeTabs>
```yaml
name: manual_pdf
label: Manual PDF
widget: file
default: /uploads/general-manual.pdf
media_library:
  choose_url: true
  config:
    multiple: true
```

```js
name: 'manual_pdf',
label: 'Manual PDF',
widget: 'file',
default: '/uploads/general-manual.pdf',
media_library: {
  choose_url: true,
  config: {
    multiple: true,
  },
},
```

</CodeTabs>