> 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.

# Content validation for jQuery File Uploader

> You can moderate uploaded content through validation. Implement guidelines: impose restrictions on file size, file type, image dimensions, and more.

> **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/).

Content validation is a common case. You want to allow users to only upload
files of certain sizes, types, image dimensions, etc. That’s where File
Validation comes in. It’s carried out via validators.

Validator is a JavaScript function that receives a `fileInfo` object for each
uploaded file and throws an exception if that file does not meet validation
requirements.

## Simple File Size Check \[#size-simple]

The simplest validator, which checks file sizes, can look like this:

```js
widget.validators.push(function(fileInfo) {
  if (fileInfo.size !== null && fileInfo.size > 1024 * 1024) {
    throw new Error("fileMaximumSize");
  }
});
```

## Wrapping Validators in Functions \[#functions]

It is better to wrap validators in a function that receives a constant, like a
file size threshold. Such validators can then be reused by different uploading widgets:

```js
function maxFileSize(size) {
  return function(fileInfo) {
    if (fileInfo.size !== null && fileInfo.size > size) {
      throw new Error("fileMaximumSize");
    }
  };
}
// limit file size to 1 MB
widget1.validators.push(maxFileSize(1024 * 1024));
// limit file size to 2 MB
widget2.validators.push(maxFileSize(2 * 1024 * 1024));
```

## Validation Based on Data Attributes of Input Elements \[#auto]

Validation can also be implemented based on data attributes of input elements.
For example, if your uploading widget has the `data-max-size` option enabled, we can add
the `maxFileSize` validator in the following manner:

```js
$(function() {
  $('[role=uploadcare-uploader][data-max-size]').each(function() {
    var widget = uploadcare.Widget(this);
    widget.validators.push(maxFileSize($(this).data('maxSize')));
  });
});
```

## Common Validators \[#cases]

Here are some common validation cases for you to consider,

* [Limit File Size](#file-size)
* [Restrict File Type](#file-type)
* [Image Dimensions](#image-dimensions)
* [Image Orientation](#image-orientation)

### File Size

The example below shows how to add validation for both min and max file sizes.
A validator is automatically added to each uploading widget with `data-min-size` and
`data-max-size` custom attributes.

### File Type

`fileTypeLimit` is another validator that can be added to uploading widgets with the
`data-file-types` custom attribute whose value is a space-separated list of
allowed files extensions. `data-file-types` can be combined with the
`data-input-accept-types` attribute that holds accepted MIME types: `audio/mpeg`
in the example below.

### Image Dimensions

For images, you can define the `maxDimensions` validator that will be added to uploading widgets with either `data-max-width` or `data-max-height` custom attributes.
Please note, `maxDimensions` only checks image dimensions even though it accepts
any file type. You can combine it with the `data-images-only` attribute to change
this behavior.

### Image Orientation

This validator denies landscape images with the `data-portrait-only="true"`
attribute and portrait images with the `data-landscape-only="true"` attribute.
There is no point in adding both of those attributes to the same uploading widget.

## Validators as uploading widget options \[#validators-as-options]

You can also moderate content via [Uploading Widget options](/docs/uploads/file-uploader-options/). Such options
are called [jQuery validators](/docs/uploads/file-uploader-options/#option-validators). Here are the most common
ones:

* Allow [images only](/docs/uploads/file-uploader-options/#option-images-only).
* Allow certain [input accept types](/docs/uploads/file-uploader-options/#option-input-accept-types).
* Set uploading widget [preferred MIME types](/docs/uploads/file-uploader-options/#option-preferred-types).