123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- require_once '../../../../inc/global.inc.php';
- require_once api_get_path(LIBRARY_PATH).'fileUpload.lib.php';
- api_protect_course_script();
- api_block_anonymous_users();
- ?>
- <style type="text/css">
- <!--
- .error-message {
- position: relative;
- margin-top: 10px;
- margin-bottom: 10px;
- border-width: 1px;
- border-style: solid;
- -moz-border-radius: 10px;
- padding: 6px;
- border: 1px solid
- color:
- background-color:
- min-height: 30px;
- }
- -->
- </style>
- <?php
- if(!isset($_POST['output_svg']) && !isset($_POST['output_png'])) {
- echo '<div class="error-message">'. get_lang('lang_no_access_here').'</div>';
- die();
- }
- $file = '';
- $suffix = isset($_POST['output_svg'])?'svg':'png';
- if(isset($_POST['filename']) && strlen($_POST['filename']) > 0) {
-
- $file = $_POST['filename'];
- } else {
-
- $file = 'image';
- }
- if($suffix == 'svg') {
- $mime = 'image/svg+xml';
- $contents = rawurldecode($_POST['output_svg']);
- } else {
- $mime = 'image/png';
- $contents = $_POST['output_png'];
- $pos = (strpos($contents, 'base64,') + 7);
- $contents = base64_decode(substr($contents, $pos));
- }
- $filename=$file;
- $extension=$suffix;
- $content=$contents;
- $title = Database::escape_string(str_replace('_',' ',$filename));
- $current_session_id = api_get_session_id();
- $groupId=$_SESSION['_gid'];
- $relativeUrlPath=$_SESSION['draw_dir'];
- $dirBaseDocuments = api_get_path(SYS_COURSE_PATH).$_course['path'].'/document/';
- $saveDir=$dirBaseDocuments.$_SESSION['draw_dir'];
- $filename = addslashes(trim($filename));
- $filename = Security::remove_XSS($filename);
- $filename = replace_dangerous_char($filename, 'strict');
- $filename = disable_dangerous_file($filename);
- $finfo = new finfo(FILEINFO_MIME);
- $current_mime=$finfo->buffer($contents);
- $mime_png='image/png';
- $mime_svg='application/xml';
- if(strpos($current_mime, $mime_png)===false && $extension=='png')
- {
- die('File extension does not match its content');
- }elseif(strpos($current_mime, $mime_svg)===false && $extension=='svg')
- {
- die('File extension does not match its content');
- }
- if(!isset($_SESSION['draw_dir']))
- {
- die('Error');
- }
- if(file_exists($saveDir.'/'.$filename.$i.'.'.$extension)){
- $i = 1;
- while (file_exists($saveDir.'/'.$filename.'_'.$i.'.'.$extension)) $i++;
- $drawFileName = $filename.'_'.$i.'.'.$extension;
- $title=$title.' '.$i.'.'.$extension;
- }else{
- $drawFileName = $filename.'.'.$extension;
- $title = $title.'.'.$extension;
- }
- $documentPath = $saveDir.'/'.$drawFileName;
- file_put_contents( $documentPath, $contents );
- $doc_id = add_document($_course, $relativeUrlPath.'/'.$drawFileName, 'file', filesize($documentPath), $title);
- api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'DocumentAdded', $_user['user_id'], $groupId,null, null,$current_session_id);
- api_item_property_update($_course, TOOL_DOCUMENT, $doc_id, 'invisible', $_user['user_id'], $groupId,null, null,$current_session_id);
- ?>
|