function file_validate_size

You are here

7 file.inc file_validate_size(stdClass $file, $file_limit = 0, $user_limit = 0)
6 file.inc file_validate_size($file, $file_limit = 0, $user_limit = 0)
8 file.module file_validate_size(File $file, $file_limit = 0, $user_limit = 0)

Check that the file's size is below certain limits. This check is not enforced for the user #1.

Parameters

$file: A Drupal file object.

$file_limit: An integer specifying the maximum file size in bytes. Zero indicates that no limit should be enforced.

$user_limit: An integer specifying the maximum number of bytes the user is allowed. Zero indicates that no limit should be enforced.

Return value

An array. If the file size exceeds limits, it will contain an error message.

Related topics

2 string references to 'file_validate_size'
upload_node_form_submit in modules/upload/upload.module
Save new uploads and store them in the session to be associated to the node on upload_save.
user_validate_picture in modules/user/user.module

File

includes/file.inc, line 773
API for handling file uploads and server file management.

Code

function file_validate_size($file, $file_limit = 0, $user_limit = 0) {
  global $user;

  $errors = array();

  // Bypass validation for uid  = 1.
  if ($user->uid != 1) {
    if ($file_limit && $file->filesize > $file_limit) {
      $errors[] = t('The file is %filesize exceeding the maximum file size of %maxsize.', array('%filesize' => format_size($file->filesize), '%maxsize' => format_size($file_limit)));
    }

    // Save a query by only calling file_space_used() when a limit is provided.
    if ($user_limit && (file_space_used($user->uid) + $file->filesize) > $user_limit) {
      $errors[] = t('The file is %filesize which would exceed your disk quota of %quota.', array('%filesize' => format_size($file->filesize), '%quota' => format_size($user_limit)));
    }
  }
  return $errors;
}