public function validate(FieldDefinition $fieldDefinition, SPIValue $fieldValue)
{
$errors = array();
if ($this->isEmptyValue($fieldValue)) {
return $errors;
}
if (isset($fieldValue->inputUri) && !getimagesize($fieldValue->inputUri)) {
$errors[] = new ValidationError('A valid image file is required.', null, array(), 'inputUri');
}
// BC: Check if file is a valid image if the value of 'id' matches a local file
if (isset($fieldValue->id) && file_exists($fieldValue->id) && !getimagesize($fieldValue->id)) {
$errors[] = new ValidationError('A valid image file is required.', null, array(), 'id');
}
foreach ((array) $fieldDefinition->getValidatorConfiguration() as $validatorIdentifier => $parameters) {
switch ($validatorIdentifier) {
case 'FileSizeValidator':
if (empty($parameters['maxFileSize'])) {
// No file size limit
break;
}
// Database stores maxFileSize in MB
if ($parameters['maxFileSize'] * 1024 * 1024 < $fieldValue->fileSize) {
$errors[] = new ValidationError('The file size cannot exceed %size% byte.', 'The file size cannot exceed %size% bytes.', array('%size%' => $parameters['maxFileSize']), 'fileSize');
}
break;
}
}
return $errors;
}