file_validate_size(FileInterface $file, $file_limit = 0, $user_limit = 0)
Checks that the file's size is below certain limits.
Parameters
\Drupal\file\FileInterface $file: A file entity.
int $file_limit: (optional) The maximum file size in bytes. Zero (the default) indicates that no limit should be enforced.
int $user_limit: (optional) The maximum number of bytes the user is allowed. Zero (the default) indicates that no limit should be enforced.
Return value
array An empty array if the file size is below limits or an array containing an error message if it's not.
See also
File
- core/modules/file/file.module, line 364
- Defines a "managed_file" Form API field and a "file" field for Field module.
Code
function file_validate_size(FileInterface $file, $file_limit = 0, $user_limit = 0) { $user = \Drupal::currentUser(); $errors = array(); if ($file_limit && $file->getSize() > $file_limit) { $errors[] = t('The file is %filesize exceeding the maximum file size of %maxsize.', array('%filesize' => format_size($file->getSize()), '%maxsize' => format_size($file_limit))); } // Save a query by only calling spaceUsed() when a limit is provided. if ($user_limit && (\Drupal::entityManager()->getStorage('file')->spaceUsed($user->id()) + $file->getSize()) > $user_limit) { $errors[] = t('The file is %filesize which would exceed your disk quota of %quota.', array('%filesize' => format_size($file->getSize()), '%quota' => format_size($user_limit))); } return $errors; }
Please login to continue.