file_validate_size

function file_validate_size

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

hook_file_validate()

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;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!file!file.module/function/file_validate_size/8.1.x

在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号

意见反馈
返回顶部