Adding the PCLZIP_OPT_REPLACE_NEWER parameter when unziping a file, this parameter forced the replacement of files. Also updating the itemproperty if files already exits see BT#1307

skala
Julio Montoya 15 years ago
parent e35665f8f1
commit dd7da6b992
  1. 14
      main/inc/lib/fileUpload.lib.php

@ -698,7 +698,7 @@ function unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $
$save_dir = getcwd();
chdir($base_work_dir.$upload_path);
// We extract using a callback function that "cleans" the path
$unzipping_state = $zip_file->extract(PCLZIP_CB_PRE_EXTRACT, 'clean_up_files_in_zip');
$unzipping_state = $zip_file->extract(PCLZIP_CB_PRE_EXTRACT, 'clean_up_files_in_zip', PCLZIP_OPT_REPLACE_NEWER);
// Add all documents in the unzipped folder to the database
add_all_documents_in_folder_to_database($_course, $_user['user_id'], $base_work_dir ,$upload_path == '/' ? '' : $upload_path, $to_group_id);
//Display::display_normal_message(get_lang('UplZipExtractSuccess'));
@ -1429,19 +1429,19 @@ function add_all_documents_in_folder_to_database($_course, $user_id, $base_work_
}
// Recursive
add_all_documents_in_folder_to_database($_course,$user_id,$base_work_dir,$current_path.'/'.$safe_file, $to_group_id);
}
// File
else {
} else {
//Rename
$safe_file = disable_dangerous_file(replace_dangerous_char($file, 'strict'));
$safe_file = disable_dangerous_file(replace_dangerous_char($file, 'strict'));
@rename($base_work_dir.$current_path.'/'.$file, $base_work_dir.$current_path.'/'.$safe_file);
if (!DocumentManager::get_document_id($_course, $current_path.'/'.$safe_file)) {
$document_id = DocumentManager::get_document_id($_course, $current_path.'/'.$safe_file);
if (!$document_id) {
$title = get_document_title($file);
$size = filesize($base_work_dir.$current_path.'/'.$safe_file);
$document_id = add_document($_course, $current_path.'/'.$safe_file, 'file', $size, $title);
api_item_property_update($_course, TOOL_DOCUMENT, $document_id, 'DocumentAdded', $user_id, $to_group_id, null, null, null, $current_session_id);
//echo $current_path.'/'.$safe_file.' added!<br />';
} else {
api_item_property_update($_course, TOOL_DOCUMENT, $document_id, 'DocumentUpdated', $user_id, $to_group_id, null, null, null, $current_session_id);
}
}
}

Loading…
Cancel
Save