FileTransfer::copyDirectoryJailed

protected FileTransfer::copyDirectoryJailed($source, $destination)

Copies a directory.

We need a separate method to make sure the $destination is in the jail.

Parameters

string $source: The source path.

string $destination: The destination path.

File

core/lib/Drupal/Core/FileTransfer/FileTransfer.php, line 270

Class

FileTransfer
Defines the base FileTransfer class.

Namespace

Drupal\Core\FileTransfer

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
protected function copyDirectoryJailed($source, $destination) {
  if ($this->isDirectory($destination)) {
    $destination = $destination . '/' . drupal_basename($source);
  }
  $this->createDirectory($destination);
  foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($source, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::SELF_FIRST) as $filename => $file) {
    $relative_path = substr($filename, strlen($source));
    if ($file->isDir()) {
      $this->createDirectory($destination . $relative_path);
    }
    else {
      $this->copyFile($file->getPathName(), $destination . $relative_path);
    }
  }
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.