> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://uploadcare.com/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://uploadcare.com/docs/_mcp/server.

# jQuery File Uploader options

> jQuery File Uploader can be configured in a number of ways which include live config and setting options as globals, locals or settings object.

> **Warning**
>
> **Warning:** jQuery File Uploader package is officially deprecated as of **September 1, 2025**.\
>
> Moving forward, we will no longer release updates or new versions of this widget.\
>
> Support will also be discontinued, except in cases where critical security vulnerabilities need to be addressed.\
> \
>
> We recommend considering our [web-component-based File Uploader](/docs/file-uploader/).

* [Public key](#option-public-key)
* [Multiple](#option-multiple)
* [Multiple max](#option-multiple-max)
* [Multiple min](#option-multiple-min)
* [Images only](#option-images-only)
* [Preview step](#option-preview-step)
* [Crop](#option-crop)
* [Image shrink](#option-image-shrink)
* [Clearable](#option-clearable)
* [Tabs](#option-tabs)
* [Input accept types](#option-input-accept-types)
* [Preferred types](#option-preferred-types)
* [System dialog](#option-system-dialog)
* [Multipart minimum size](#option-multipart-min-size)
* [Locale](#option-locale)
* [Locale translations](#option-locale-translations)
* [Locale pluralize](#option-locale-pluralize)
* [Secure signature](#option-secure-signature)
* [Secure expire](#option-secure-expire)
* [Preview proxy](#option-preview-proxy)
* [Preview URL callback](#option-preview-url-callback)
* [Metadata](#option-metadata)
* [Metadata callback](#option-metadata-callback)
* [Live](#option-live)
* [Manual start](#option-manual-start)
* [CDN base](#option-cdn-base)
* [Do not store](#option-do-not-store)
* [Validators](#option-validators)
* [Audio bits per second](#option-audio-bits-per-second)
* [Video preferred MIME types](#option-video-preferred-mime-types)
* [Video bits per second](#option-video-bits-per-second)
* [Camera mirror default](#option-camera-mirror-default)
* [Enable video recording](#option-enable-video-recording)
* [Enable audio recording](#option-enable-audio-recording)
* [Debugging](#option-debugging)
* [Session key for remote tab](#option-remote-tab-session-key)

### Public key \[#option-public-key]

Type: `string` \

Global: `UPLOADCARE_PUBLIC_KEY` \

Local: `data-public-key` \

Object key: `publicKey`

Sets your Uploadcare [public key](/docs/start/settings/#keys-public).

### Multiple \[#option-multiple]

Type: `boolean` \

Global: `UPLOADCARE_MULTIPLE` \

Local: `data-multiple` \

Object key: `multiple` \


If `true`, the file uploader allows selecting and uploading multiple files.
`false` by default.

### Multiple max \[#option-multiple-max]

Type: `integer` \

Global: `UPLOADCARE_MULTIPLE_MAX` \

Local: `data-multiple-max` \

Object key: `multipleMax` \


Sets the maximum number of files that can be selected for a single upload.
Defaults to 0 which stands for no limit.

### Multiple min \[#option-multiple-min]

Type: `integer` \

Global: `UPLOADCARE_MULTIPLE_MIN` \

Local: `data-multiple-min` \

Object key: `multipleMin` \


Sets the minimal number of files that can be selected for a single upload. The
default value is 1.
Note, there is no point in setting this option to 0 since there should be at
least one file in a file group.

### Images only \[#option-images-only]

Type: `boolean` \

Global: `UPLOADCARE_IMAGES_ONLY` \

Local: `data-images-only` \

Object key: `imagesOnly` \


If `true`, only image files are allowed to be uploaded. `false` by default.

### Preview step \[#option-preview-step]

Type: `boolean` \

Global: `UPLOADCARE_PREVIEW_STEP` \

Local: `data-preview-step` \

Object key: `previewStep` \


If `true`, the preview step is present after selecting files. Otherwise, the
file uploader dialog closes when the selection is complete. `false` by default.

### Crop \[#option-crop]

Type: `string` \

Global: `UPLOADCARE_CROP` \

Local: `data-crop` \

Object key: `crop` \


Defines the file uploader [manual crop](/docs/uploads/file-uploader/#crop-option) behavior. When
uploading images, your users can select a crop area. This option does not force
your file uploader to accept [images only](#option-images-only). The option also works
in the [multi-file mode](#option-multiple) since version 2.3.0.

### Image shrink \[#option-image-shrink]

Type: `string` \

Global: `UPLOADCARE_IMAGE_SHRINK` \

Local: `data-image-shrink` \

Object key: `imageShrink` \


Saves traffic and storage space by resizing images on a client before uploading.
See the [option description](/docs/uploads/file-uploader/#client-side-image-resize) for details. Using the
client-side resize does not force the [images only](#option-images-only) option.

### Clearable \[#option-clearable]

Type: `boolean` \

Global: `UPLOADCARE_CLEARABLE` \

Local: `data-clearable` \

Object key: `clearable` \


Allows users to remove uploaded files from the file uploader.
Note, those files are not deleted from your Uploadcare account.

### Tabs \[#option-tabs]

Type: `string` \

Global: `UPLOADCARE_TABS` \

Local: `data-tabs` \

Object key: `tabs` \


Allows you to define which upload sources you want to use with the file uploader.
The value is represented by a space-separated ordered list of upload source names.
See [this article](/docs/uploads/file-uploader/#upload-sources) for details.

### Input accept types \[#option-input-accept-types]

Type: `string` \

Global: `UPLOADCARE_INPUT_ACCEPT_TYPES` \

Local: `data-input-accept-types` \

Object key: `inputAcceptTypes` \


Sets the `accept` attribute for the file uploader dialog. If the
[images only](#option-images-only) option is disabled, the value is empty.
Otherwise, the default value is `image/*`. `null` means `accept` should be kept
empty regardless of the `images only` value. You can discover the other possible
values in [this specification](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept).
Note, this is not a replacement for our
[file validation](/docs/file-uploader-api/file-validation/) because your users will
still be able to choose any file via drag\&drop or from URL.

### Preferred types \[#option-preferred-types]

Type: `string` \

Global: `UPLOADCARE_PREFERRED_TYPES` \

Local: `data-preferred-types` \

Object key: `preferredTypes` \


Some cloud services, such as Google Drive, export document files as PDFs by default,
but they can be exported as Word documents, PDFs or plain text.

You can define the behavior by setting a list of preferred MIME types.

The list should be ordered and contain space-separated MIME types.
Common parts can be marked with asterisks:
`image/* application/vnd.openxmlformats-officedocument.*`.
If no MIME types match the criteria or preferred types are not set, default
formats are used.

Keep in mind that some cloud services can export data in different formats.
For example, Google document can be exported as Word document, PDF or plain text.

### System dialog \[#option-system-dialog]

Type: `boolean` \

Global: `UPLOADCARE_SYSTEM_DIALOG` \

Local: `data-system-dialog` \

Object key: `systemDialog` \


Forces a system-native file picking dialog to show up instead of our file uploader.
That makes the file uploader behavior as close as possible to the generic
`<input type="file">`. Native behavior is achieved at the expense of support for
uploading content from [social media and cloud storage](#option-tabs),
[manual crop](#option-crop), and [preview step](#option-preview-step).
Multi-file selection would still work. The option does not work in old browser
versions: the dialog falls back to the file uploader.

### Multipart minimum size \[#option-multipart-min-size]

Type: `integer` \

Global: `UPLOADCARE_MULTIPART_MIN_SIZE` \

Local: `data-multipart-min-size` \

Object key: `multipartMinSize` \


This option sets the file size threshold for
[multipart uploading](https://uploadcare.com/docs/api/upload/upload/multipart-file-upload-start).
The value ranges from 10485760 (10 MB), which is default,
up to 104857600 (100 MB).

If a file size hits the threshold, it gets uploaded in four parallel chunks by
5 MB. Multipart upload makes large file uploading faster. Files go directly to
a storage, bypassing our upload servers, and they're quickly available for
further use. All files below the threshold get uploaded in one piece.

Note that multipart upload works with local sources only (files and camera).

### Locale \[#option-locale]

Type: `string` \

Global: `UPLOADCARE_LOCALE` \

Local: *N/A* \

Object key: *N/A* \


The uploading widget supports  locales.

There currently are:

English locale is used by default.

### Locale translations \[#option-locale-translations]

Type: `object` \

Global: `UPLOADCARE_LOCALE_TRANSLATIONS` \

Local: *N/A* \

Object key: *N/A* \


Sets [custom localization](/docs/uploads/file-uploader/#localization) options.

### Locale pluralize \[#option-locale-pluralize]

Type: `object` \

Global: `UPLOADCARE_LOCALE_PLURALIZE` \

Local: *N/A* \

Object key: *N/A* \


Defines [pluralization](/docs/uploads/file-uploader/#pluralization) options.

### Secure signature \[#option-secure-signature]

Type: `string` \

Global: `UPLOADCARE_SECURE_SIGNATURE` \

Local: `data-secure-signature` \

Object key: `secureSignature` \


The `signature` is an [HMAC/SHA256](https://en.wikipedia.org/wiki/HMAC) hex-encoded hash that
includes `YOUR_SECRET_KEY` and [`expire`](#option-secure-expire) strings.

To use signed uploads for your project, you need to make a `signature` on your
back end using your project's Secret Key and provide it to File Uploader.
Learn how to make your signature in [Signed uploads](/docs/security/secure-uploads/) docs.

### Secure expire \[#option-secure-expire]

Type: `integer` \

Global: `UPLOADCARE_SECURE_EXPIRE` \

Local: `data-secure-expire` \

Object key: `secureExpire` \


Stands for the [Unix time](https://en.wikipedia.org/wiki/Unix_time) to which the signature is
valid, e.g., `1454902434`.

Works together with the [secure signature option](#option-secure-signature) that
defines a period of your signature validity.

### Preview proxy \[#option-preview-proxy]

Type: `string` \

Global: `UPLOADCARE_PREVIEW_PROXY` \

Local: `data-preview-proxy` \

Object key: `previewProxy` \


The option can be used with [signed URLs](/docs/security/secure-delivery/#authenticated-urls).
Defines your [signing proxy](/docs/security/secure-delivery/#use-with-file-uploader) URL.

### Preview URL callback \[#option-preview-url-callback]

Type: `function` \

Global: `UPLOADCARE_PREVIEW_URL_CALLBACK` \

Local: *N/A* \

Object key: `previewUrlCallback` \


The option can be used with
[signed URLs](/docs/security/secure-delivery/#authenticated-urls). Defines the function
that specifies which URL a file uploader should use for image previews. Function
signature is `(originalUrl, fileInfo) => previewUrl`.

If this option is specified, option `previewProxy` will be ignored.
So you should use one of them, not both.

### Metadata \[#option-metadata]

Type: `object` \

Global: `UPLOADCARE_METADATA` \

Local: *N/A* \

Object key: `metadata` \


The option can be used to set metadata object associated with the uploaded file.

Note that metadata supports `string` values only, any non-string value will be
converted to `string`, including `boolean`, `number`, `null` and `undefined`.

See [Metadata docs](/docs/file-metadata/) for details.

### Metadata callback \[#option-metadata-callback]

Type: `function` \

Global: `UPLOADCARE_METADATA_CALLBACK` \

Local: *N/A* \

Object key: `metadataCallback` \


Defines the function that specifies the actual metadata object a file
uploader should use to associate with the uploaded file.
It's helpful in the case of dynamic metadata object.

Function signature is `() => {[key: string]: string}`.

If this option is specified, option `metadata` will be overridden
(without merging).

Note that metadata supports `string` values only, any non-string value
will be converted to `string`, including `boolean`, `number`, `null`
and `undefined`.

See the [File metadata REST API](https://uploadcare.com/docs/api/rest/file-metadata/file-metadata) for details.

### Live \[#option-live]

Type: `boolean` \

Global: `UPLOADCARE_LIVE` \

Local: *N/A* \

Object key: *N/A* \


If `true`, inputs on your page are initialized automatically, see
[this article](/docs/file-uploader-api/widget-initialization/) for details. `true` by default.

### Manual start \[#option-manual-start]

Type: `boolean` \

Global: `UPLOADCARE_MANUAL_START` \

Local: *N/A* \

Object key: *N/A* \


If true, input initialization is [invoked manually](/docs/file-uploader-api/widget-initialization/).
`false` by default.

### CDN base \[#option-cdn-base]

Type: `url` \

Global: `UPLOADCARE_CDN_BASE` \

Local: `data-cdn-base` \

Object key: `cdnBase` \


Defines your schema and CDN domain. Can be changed to one of the
[predefined values](/docs/delivery/) or your custom CNAME. Defaults to
`https://:subdomain.ucarecd.net/`.

`:subdomain` is your project's subdomain. Find it in [Delivery](https://app.uploadcare.com/projects/-/settings/#delivery).

### Do not store \[#option-do-not-store]

Type: `boolean` \

Global: `UPLOADCARE_DO_NOT_STORE` \

Local: `data-do-not-store` \

Object key: `doNotStore` \


Forces files uploaded with a file uploader not to be [stored](/docs/uploads/storage/#file-storing-behavior).
For instance, you might want to turn this on when automatic file storing is
enabled in your project, but you do not want to store files uploaded with a
particular file uploader.

### Validators \[#option-validators]

Type: `array` \

Global: *N/A* \

Local: *N/A* \

Object key: `validators` \


JavaScript-only option. Defines an array of validation functions.
See [validators documentation](/docs/file-uploader-api/file-validation/).

### Audio bits per second \[#option-audio-bits-per-second]

Type: `number` \

Global: `UPLOADCARE_AUDIO_BITS_PER_SECOND` \

Local: `data-audio-bits-per-second` \

Object key: `audioBitsPerSecond` \


Allows you to adjust the quality of an audio recorded via the file uploader
Camera Tab.
Refer [mediarecorder options](https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder) to learn more.

### Video preferred MIME types \[#option-video-preferred-mime-types]

Type: `array` \

Global: `UPLOADCARE_VIDEO_PREFERRED_MIME_TYPES` \

Local: `data-video-preferred-mime-types` \

Object key: `videoPreferredMimeTypes` \


Allows you to specify the MIME types. The first supported by the browser will
be used as an option of video stream captured via the file uploader Camera Tab.
Refer [mediarecorder options](https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder) to learn more.

### Video bits per second \[#option-video-bits-per-second]

Type: `number` \

Global: `UPLOADCARE_VIDEO_BITS_PER_SECOND` \

Local: `data-video-bits-per-second` \

Object key: `videoBitsPerSecond` \


Allows you to adjust the quality of a video stream captured via the file
uploader Camera Tab.
Refer [mediarecorder options](https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder) to learn more.

### Camera mirror default \[#option-camera-mirror-default]

Type: `boolean` \

Global: `UPLOADCARE_CAMERA_MIRROR_DEFAULT` \

Local: `data-camera-mirror-default` \

Object key: `cameraMirrorDefault` \


Allows you to set the default state of image/video mirroring in the camera tab.
`true` by default.

### Enable video recording \[#option-enable-video-recording]

Type: `boolean` \

Global: `UPLOADCARE_ENABLE_VIDEO_RECORDING` \

Local: `data-enable-video-recording` \

Object key: `enableVideoRecording` \


Allows you to enable video recording. `true` by default.
To use the camera with photo only, set to `false`.

### Enable audio recording \[#option-enable-audio-recording]

Type: `boolean` \

Global: `UPLOADCARE_ENABLE_AUDIO_RECORDING` \

Local: `data-enable-audio-recording` \

Object key: `enableAudioRecording` \


Allows to record audio while using the camera in video mode. `true` by default.
To film video without audio, set it to `false`.

### Debugging \[#option-debugging]

Type: `boolean` \

Global: `UPLOADCARE_DEBUG_UPLOADS` \

Local: `data-debug-uploads` \

Object key: `debugUploads` \


Allows you to enable the output to the console of error descriptions from
the server when the upload goes wrong. `false` by default.

List of the most common server errors:

| **Server errors**                   | **Description**                                                          |
| ----------------------------------- | ------------------------------------------------------------------------ |
| AccountBlockedError                 | Administrator's account has been blocked. Please, contact support.       |
| AccountUnpaidError                  | Administrator's account has been blocked. Please, contact support.       |
| AccountLimitsExceededError          | Administrator's account has reached its limits. Please, contact support. |
| FileSizeLimitExceededError          | File is too large.                                                       |
| MultipartFileSizeLimitExceededError | File is too large.                                                       |
| FileTypeForbiddenOnCurrentPlanError | Uploading of these files types is not allowed.                           |
| DownloadFileSizeLimitExceededError  | Downloaded file is too big.                                              |

View a complete list of descriptions of system errors in the Upload
API [Errors](https://uploadcare.com/docs/api/upload/errors) tab.

### Session key for widget remote tab \[#option-remote-tab-session-key]

Type: `string` \

Global: `UPLOADCARE_REMOTE_TAB_SESSION_KEY` \

Local: `data-remote-tab-session-key` \

Object key: `remoteTabSessionKey` \


Generates the end-user part of the two-part key used to encrypt the OAuth token;
see more about [OAuth token](/docs/upload-sources/#oauth).
It allows the custom OAuth application to revoke the widgets access to content
from connected download sources (Dropbox, Facebook, etc.).