File Validators

MimeType

Laminas\Validator\File\MimeType checks the MIME type of files. It will assert true when a given file matches any defined MIME type.

This validator is inversely related to the ExcludeMimeType validator

Compatibility

This component makes use of the FileInfo extension which is enabled by default in PHP. If you are using a version of PHP that was explicitly built without the File Info extension, this validator will not work.

Supported Options

The following set of options are supported:

  • mimeType: Comma-delimited string of MIME types, or array of MIME types, against which to test. Types can be specific (e.g., image/jpeg), or refer only to the group (e.g., image).

Basic Usage

use Laminas\Validator\File\MimeType;

// Only allow 'gif' or 'jpg' files
$validator = new MimeType(['mimeType' => 'image/gif,image/jpeg']);

// ... or with array notation:
$validator = new MimeType(['mimeType' => ['image/gif', 'image/jpeg']]);

// ... or restrict to  entire group of types:
$validator = new MimeType(['mimeType' => ['image', 'audio']]);

// Perform validation
if ($validator->isValid('./myfile.jpg')) {
    // file is valid
}

Validating MIME Groups Is Potentially Dangerous

Allowing "groups" of MIME types will accept all members of this group, even if your application does not support them. For instance, When you allowimage you also allow image/xpixmap and image/vasa, both of which could be problematic.

Validating Uploaded Files

This validator accepts and validates 3 types of argument:

  • A string that represents a path to an existing file
  • An array that represents an uploaded file as per PHP's $_FILES superglobal
  • A PSR-7 UploadedFileInterface instance