Same name and namespace in other branches
  1. 7.x modules/system/system.api.php \hook_file_copy()
  2. 8.9.x core/modules/file/file.api.php \hook_file_copy()
  3. 9 core/modules/file/file.api.php \hook_file_copy()

Respond to a file that has been copied.

Parameters

\Drupal\file\FileInterface $file: The newly copied file entity.

\Drupal\file\FileInterface $source: The original file before the copy.

See also

\Drupal\file\FileRepositoryInterface::copy()

Related topics

1 function implements hook_file_copy()

Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.

file_test_file_copy in core/modules/file/tests/file_test/file_test.module
Implements hook_file_copy().

File

core/modules/file/file.api.php, line 104
Hooks for file module.

Code

function hook_file_copy(\Drupal\file\FileInterface $file, \Drupal\file\FileInterface $source) {

  // Make sure that the file name starts with the owner's user name.
  if (!str_starts_with($file
    ->getFilename(), $file
    ->getOwner()->name)) {
    $file
      ->setFilename($file
      ->getOwner()->name . '_' . $file
      ->getFilename());
    $file
      ->save();
    \Drupal::logger('file')
      ->notice('Copied file %source has been renamed to %destination', [
      '%source' => $source->filename,
      '%destination' => $file
        ->getFilename(),
    ]);
  }
}