From 4a75df5635c92358f172629abafde90971604ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de> Date: Mon, 8 Jan 2024 14:50:27 +0000 Subject: [PATCH] Resolve ""Falsche" Verzeichnisstruktur bei Download aus Veranstaltung" Closes #928 Merge request studip/studip!2490 --- lib/filesystem/FileArchiveManager.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/filesystem/FileArchiveManager.class.php b/lib/filesystem/FileArchiveManager.class.php index 7239bd4854f..704bb44c283 100644 --- a/lib/filesystem/FileArchiveManager.class.php +++ b/lib/filesystem/FileArchiveManager.class.php @@ -104,7 +104,7 @@ class FileArchiveManager //The URL has been fetched and we can put it //in a file in the archive: $archive->addFromString( - $archive_fs_path . $file_type->getFilename() . '.url', + $archive_fs_path . FileManager::cleanFileName($file_type->getFilename()) . '.url', "[InternetShortcut]\nURL={$url}\n" ); //Check the file size of the archive: @@ -119,7 +119,7 @@ class FileArchiveManager if (is_array($file_list)) { $user = $file_type->getUser(); $file_list[] = [ - 'name' => $file_type->getFilename(), + 'name' => FileManager::cleanFileName($file_type->getFilename()), 'size' => $file_type->getSize(), 'first_name' => ($user instanceof User) ? $user->vorname : '', 'last_name' => ($user instanceof User) ? $user->nachname : '', @@ -144,7 +144,7 @@ class FileArchiveManager if ($path) { //It is a file in the file system: if (file_exists($path)) { - $archive->addFile($path, $archive_fs_path . $file_type->getFilename()); + $archive->addFile($path, $archive_fs_path . FileManager::cleanFileName($file_type->getFilename())); //Check the file size of the archive: if (file_exists($archive->filename) && filesize($archive->filename) > $archive_max_size) { throw new FileArchiveManagerException( @@ -160,13 +160,13 @@ class FileArchiveManager $archive_max_size = Config::get()->ZIP_DOWNLOAD_MAX_SIZE * 1024 * 1024; //1048576 bytes = 1 Mebibyte $user = $file_type->getUser(); $file_list[] = [ - 'name' => $file_type->getFilename(), + 'name' => FileManager::cleanFileName($file_type->getFilename()), 'size' => $file_type->getSize(), 'first_name' => ($user instanceof User) ? $user->vorname : '', 'last_name' => ($user instanceof User) ? $user->nachname : '', 'downloads' => $file_type->getDownloads(), 'mkdate' => date('d.m.Y H:i', $file_type->getMakeDate()), - 'path' => ($archive_fs_path . $file_type->getFilename()) + 'path' => ($archive_fs_path . FileManager::cleanFileName($file_type->getFilename())) ]; if (count($file_list) > $archive_max_num_files) { $archive->unchangeAll(); @@ -283,7 +283,7 @@ class FileArchiveManager $folder_zip_path = $archive_fs_path; if ($keep_hierarchy) { - $folder_zip_path .= $folder->name; + $folder_zip_path .= FileManager::cleanFileName($folder->name); $archive->addEmptyDir($folder_zip_path); } foreach ($folder->getFiles() as $file) { -- GitLab