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 ); } } } |
Please login to continue.