function 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
2 functions implement hook_file_copy()
Note: the procedural functions in this list are found by pattern matching, so the list may include some functions that are not actually implementations of this hook.
- FileTestHooks::fileCopy in core/
modules/ file/ tests/ file_test/ src/ Hook/ FileTestHooks.php  - Implements hook_file_copy().
 - file_test_file_copy in core/
modules/ file/ tests/ file_test/ file_test.module  - Implements hook_file_copy().
 
1 invocation of hook_file_copy()
- FileRepository::copy in core/
modules/ file/ src/ FileRepository.php  - Copies a file to a new location and adds a file record to the database.
 
File
- 
              core/
modules/ file/ file.api.php, line 97  
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 (strpos($file->getFilename(), $file->getOwner()->name) !== 0) {
    $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(),
    ]);
  }
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.