1 file.pages.inc | file_get_upload_validators(array $options = array()) |
Retrieves the upload validators for a file.
Parameters
array $options: (optional) An array of options for file validation.
Return value
array: An array suitable for passing to file_save_upload() or for a managed_file or upload element's '#upload_validators' property.
File
- core/
modules/ file/ file.pages.inc, line 1109 - Supports file operations including Manage and Delete.
Code
function file_get_upload_validators(array $options = array()) {
$config = config('file.settings');
// Set up file upload validators.
$validators = array();
// Validate file extensions. If there are no file extensions in $params and
// there are no Media defaults, there is no file extension validation.
if (!empty($options['file_extensions'])) {
$validators['file_validate_extensions'] = array($options['file_extensions']);
}
else {
$validators['file_validate_extensions'] = array($config->get('default_allowed_extensions'));
}
// Cap the upload size according to the system or user defined limit.
$max_filesize = parse_size(file_upload_max_size());
$file_max_filesize = parse_size($config->get('max_filesize'));
// If the user defined a size limit, use the smaller of the two.
if (!empty($file_max_filesize)) {
$max_filesize = min($max_filesize, $file_max_filesize);
}
if (!empty($options['max_filesize']) && $options['max_filesize'] < $max_filesize) {
$max_filesize = parse_size($options['max_filesize']);
}
// There is always a file size limit due to the PHP server limit.
$validators['file_validate_size'] = array($max_filesize);
// Add image validators.
$options += array('min_resolution' => 0, 'max_resolution' => 0);
if ($options['min_resolution'] || $options['max_resolution']) {
$validators['file_validate_image_resolution'] = array($options['max_resolution'], $options['min_resolution']);
}
// Add other custom upload validators from options.
if (!empty($options['upload_validators'])) {
$validators += $options['upload_validators'];
}
return $validators;
}