diff --git a/main/coursecopy/classes/CourseArchiver.class.php b/main/coursecopy/classes/CourseArchiver.class.php index 2d1d204101..496082e0d1 100644 --- a/main/coursecopy/classes/CourseArchiver.class.php +++ b/main/coursecopy/classes/CourseArchiver.class.php @@ -1,5 +1,5 @@ code.'_'.date("YmdHis").'.zip'; - + $php_errormsg = ''; $res = @mkdir($backup_dir, 0755); if($res == false) { @@ -168,8 +168,13 @@ class CourseArchiver function import_uploaded_file($file) { $new_filename = uniqid('').'.zip'; - move_uploaded_file($file,api_get_path(SYS_ARCHIVE_PATH).''.$new_filename); - return $new_filename; + $new_dir = api_get_path(SYS_ARCHIVE_PATH); + if(is_dir($new_dir) && is_writable($new_dir)) + { + move_uploaded_file($file,api_get_path(SYS_ARCHIVE_PATH).''.$new_filename); + return $new_filename; + } + return false; } /** * Read a course-object from a zip-file diff --git a/main/coursecopy/import_backup.php b/main/coursecopy/import_backup.php index e88ebfaabd..63ee68acfd 100644 --- a/main/coursecopy/import_backup.php +++ b/main/coursecopy/import_backup.php @@ -1,4 +1,4 @@ -has_resources()) + if(!$error && $course->has_resources()) { $cr = new CourseRestorer($course); $cr->set_file_option($_POST['same_file_name_option']); @@ -117,14 +127,19 @@ if( (isset($_POST['action']) && $_POST['action'] == 'course_select_form' ) || ( if(!$error){ echo get_lang('NoResourcesInBackupFile'); } - else{ - echo get_lang('UploadError'); + elseif ($filename === false) + { + echo get_lang('ArchivesDirectoryNotWriteableContactAdmin'); + } + else + { + echo ucfirst(get_lang('UploadError')); } } CourseArchiver::clean_backup_dir(); echo '

<< '.get_lang('CourseHomepage').'

'; } -elseif( isset($_POST['import_option']) && $_POST['import_option'] == 'select_items') +elseif (isset($_POST['import_option']) && $_POST['import_option'] == 'select_items') { if( $_POST['backup_type'] == 'server') { @@ -137,10 +152,15 @@ elseif( isset($_POST['import_option']) && $_POST['import_option'] == 'select_ite $delete_file = true; } $course = CourseArchiver::read_course($filename,$delete_file); - if( $course->has_resources()) + if ($course->has_resources() && ($filename !== false)) { CourseSelectForm::display_form($course,array('same_file_name_option'=>$_POST['same_file_name_option'])); } + elseif ($filename === false) + { + echo get_lang('ArchivesDirectoryNotWriteableContactAdmin'); + echo '

<< '.get_lang('TryAgain').'

'; + } else { echo get_lang('NoResourcesInBackupFile');