function FileSystem::getDestinationFilename
Determines the destination path for a file.
Parameters
string $destination: The desired final URI or filepath.
int $replace: Replace behavior when the destination file already exists.
- FileSystemInterface::EXISTS_REPLACE - Replace the existing file.
- FileSystemInterface::EXISTS_RENAME - Append _{incrementing number} until the filename is unique.
- FileSystemInterface::EXISTS_ERROR - Do nothing and return FALSE.
Return value
string|bool The destination filepath, or FALSE if the file already exists and FileSystemInterface::EXISTS_ERROR is specified.
Overrides FileSystemInterface::getDestinationFilename
1 call to FileSystem::getDestinationFilename()
- FileSystem::prepareDestination in core/lib/ Drupal/ Core/ File/ FileSystem.php 
- Prepares the destination for a file copy or move operation.
File
- 
              core/lib/ Drupal/ Core/ File/ FileSystem.php, line 554 
Class
- FileSystem
- Provides helpers to operate on files and stream wrappers.
Namespace
Drupal\Core\FileCode
public function getDestinationFilename($destination, $replace) {
  $basename = $this->basename($destination);
  if (!Unicode::validateUtf8($basename)) {
    throw new FileException(sprintf("Invalid filename '%s'", $basename));
  }
  if (file_exists($destination)) {
    switch ($replace) {
      case FileSystemInterface::EXISTS_REPLACE:
        // Do nothing here, we want to overwrite the existing file.
        break;
      case FileSystemInterface::EXISTS_RENAME:
        $directory = $this->dirname($destination);
        $destination = $this->createFilename($basename, $directory);
        break;
      case FileSystemInterface::EXISTS_ERROR:
        // Error reporting handled by calling function.
        return FALSE;
    }
  }
  return $destination;
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
