MDL-32639 files: Zipping a folder does not overwrite existing files
authorFrederic Massart <fred@moodle.com>
Wed, 12 Dec 2012 06:37:55 +0000 (14:37 +0800)
committerFrederic Massart <fred@moodle.com>
Wed, 12 Dec 2012 06:41:08 +0000 (14:41 +0800)
repository/draftfiles_ajax.php
repository/draftfiles_manager.php

index 5e89450..31b7e15 100644 (file)
@@ -222,8 +222,9 @@ switch ($action) {
 
         $filepath = explode('/', trim($file->get_filepath(), '/'));
         $filepath = array_pop($filepath);
+        $zipfile = repository::get_unused_filename($draftid, $parent_path, $filepath . '.zip');
 
-        if ($newfile = $zipper->archive_to_storage(array($filepath => $file), $user_context->id, 'user', 'draft', $draftid, $parent_path, $filepath.'.zip', $USER->id)) {
+        if ($newfile = $zipper->archive_to_storage(array($filepath => $file), $user_context->id, 'user', 'draft', $draftid, $parent_path, $zipfile, $USER->id)) {
             $return = new stdClass();
             $return->filepath = $parent_path;
             echo json_encode($return);
index fa966fc..7f4dee7 100644 (file)
@@ -168,6 +168,7 @@ case 'zip':
         $filename = $filepath.'.zip';
     }
 
+    $filename = repository::get_unused_filename($itemid, $parent_path, $filename);
     $newfile = $zipper->archive_to_storage(array($filepath => $file), $user_context->id, 'user', 'draft', $itemid, $parent_path, $filename, $USER->id);
 
     $home_url->param('action', 'browse');