예제 #1
0
 if (!isset($_POST['file_name'])) {
     return false;
 }
 // Escape path with basename so it can only be directly into the archive/ directory.
 $s = api_get_path(SYS_ARCHIVE_PATH) . basename($_POST['file_name']);
 // Get name of the zip file without the extension
 $info = pathinfo($s);
 $filename = $info['basename'];
 $extension = $info['extension'];
 $file_base_name = str_replace('.' . $extension, '', $filename);
 $new_dir = api_replace_dangerous_char(trim($file_base_name));
 $result = learnpath::verify_document_size($s);
 if ($result == true) {
     throw new \Exception(get_lang('UplFileTooBig'));
 }
 $type = learnpath::get_package_type($s, basename($s));
 switch ($type) {
     case 'scorm':
         require_once 'scorm.class.php';
         $oScorm = new scorm();
         $manifest = $oScorm->import_local_package($s, $current_dir);
         if ($manifest === false) {
             throw new \Exception('Error import local package');
         }
         if (!empty($manifest)) {
             $oScorm->parse_manifest($manifest);
             $oScorm->import_manifest(api_get_course_id(), $_REQUEST['use_max_score']);
         }
         $proximity = '';
         if (!empty($_REQUEST['content_proximity'])) {
             $proximity = Database::escape_string($_REQUEST['content_proximity']);
예제 #2
0
파일: lp_upload.php 프로젝트: Eidn/shanghai
 $title = $_FILES['file']['name'];
 $srcfile = $_FILES['file']['tmp_name'];
 $size = round($_FILES['file']['size'] / 1000);
 //get name of the zip file without the extension
 $extension = file_ext($title);
 $filename = date("YmdHis-") . rand(1000, 9999) . "." . $extension;
 $file_base_name = str_replace('.' . $extension, '', $filename);
 //$file_base_name = replace_dangerous_char(trim($file_base_name),'strict');
 //move_uploaded_file($srcfile,$course_dir.iconv("GBK","UTF-8",$s));
 move_uploaded_file($srcfile, $course_dir . $filename);
 //die("insert into attachment(title,size,type,path,time,unzip) values ('$title','$size','$extension','".$course_dir.$filename."','$time','1')");
 $mysql->query("insert into attachment(title,size,type,path,time,unzip) values ('{$title}','{$size}','{$extension}','" . $course_dir . $filename . "','{$time}','1')");
 $attachmentId = $mysql->insert_id();
 $unzip = new unzip();
 $unzip->extract_zip($course_dir . $filename, $course_dir . $file_base_name . "/");
 $type = learnpath::get_package_type($course_dir . $filename, $filename);
 switch ($type) {
     case 'scorm':
         require_once 'scorm.class.php';
         //require_once api_get_path(LIBRARY_PATH).'searchengine.lib.php';
         $oScorm = new scorm();
         //$manifest = $oScorm->import_package($_FILES['file'],$current_dir);
         $manifest = $course_dir . $file_base_name . "/imsmanifest.xml";
         if (!empty($manifest)) {
             $oScorm->parse_manifest($manifest);
             $oScorm->import_manifest($parentDir);
         } else {
             //show error message stored in $oScrom->error_msg
             //logger("error: lp_upload->switch(scorm)->empty(manifest)");
             die("不是符合标准的scorm课程包。");
         }