|
|
|
@ -47,18 +47,23 @@ abstract class ArchiveDownloader extends FileDownloader
|
|
|
|
|
if (1 === count($contentDir)) {
|
|
|
|
|
$contentDir = $contentDir[0];
|
|
|
|
|
|
|
|
|
|
// Rename the content directory to avoid error when moving up
|
|
|
|
|
// a child folder with the same name
|
|
|
|
|
$temporaryName = md5(time().rand());
|
|
|
|
|
$this->filesystem->rename($contentDir, $temporaryName);
|
|
|
|
|
$contentDir = $temporaryName;
|
|
|
|
|
if (is_file($contentDir)) {
|
|
|
|
|
$this->filesystem->rename($contentDir, $path . '/' . basename($contentDir));
|
|
|
|
|
} else {
|
|
|
|
|
// Rename the content directory to avoid error when moving up
|
|
|
|
|
// a child folder with the same name
|
|
|
|
|
$temporaryName = md5(time().rand());
|
|
|
|
|
$this->filesystem->rename($contentDir, $temporaryName);
|
|
|
|
|
$contentDir = $temporaryName;
|
|
|
|
|
|
|
|
|
|
foreach (array_merge(glob($contentDir . '/.*'), glob($contentDir . '/*')) as $file) {
|
|
|
|
|
if (trim(basename($file), '.')) {
|
|
|
|
|
$this->filesystem->rename($file, $path . '/' . basename($file));
|
|
|
|
|
foreach (array_merge(glob($contentDir . '/.*'), glob($contentDir . '/*')) as $file) {
|
|
|
|
|
if (trim(basename($file), '.')) {
|
|
|
|
|
$this->filesystem->rename($file, $path . '/' . basename($file));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rmdir($contentDir);
|
|
|
|
|
}
|
|
|
|
|
rmdir($contentDir);
|
|
|
|
|
}
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
// clean up
|
|
|
|
|