Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/main/inc/ajax/record_audio_rtc.ajax.php

76 lines
1.9 KiB

<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
require_once '../global.inc.php';
// Add security from Chamilo
api_protect_course_script();
api_block_anonymous_users();
$courseInfo = api_get_course_info();
if (!isset($_FILES['audio_blob'], $_REQUEST['audio_dir'])) {
api_not_allowed();
}
$file = $_FILES["audio_blob"];
$audioDir = Security::remove_XSS($_REQUEST['audio_dir']);
$userId = api_get_user_id();
if (empty($userId)) {
api_not_allowed();
}
$audioFileName = Security::remove_XSS($file['name']);
$audioFileName = Database::escape_string($audioFileName);
$audioFileName = api_replace_dangerous_char($audioFileName);
$audioFileName = disable_dangerous_file($audioFileName);
$audioDir = Security::remove_XSS($audioDir);
$dirBaseDocuments = api_get_path(SYS_COURSE_PATH) . $courseInfo['path'] . '/document';
$saveDir = $dirBaseDocuments . $audioDir;
if (!is_dir($saveDir)) {
DocumentManager::createDefaultAudioFolder($courseInfo);
}
$documentPath = $saveDir . '/' . $audioFileName;
$file['file'] = $file;
$result = DocumentManager::upload_document(
$file,
$audioDir,
$file['name'],
null,
0,
'overwrite',
false,
false
);
if (!empty($result) && is_array($result)) {
$newDocId = $result['id'];
$courseId = $result['c_id'];
/** @var learnpath $lp */
$lp = Session::read('oLP');
$lpItemId = isset($_REQUEST['lp_item_id']) && !empty($_REQUEST['lp_item_id']) ? $_REQUEST['lp_item_id'] : null;
if (!empty($lp) && empty($lpItemId)) {
$lp->set_modified_on();
$lpItem = new learnpathItem($lpItemId);
$lpItem->add_audio_from_documents($newDocId);
}
$data = DocumentManager::get_document_data_by_id($newDocId, $courseInfo['code']);
Display::addFlash(
Display::return_message(get_lang('DocumentCreated'), 'success')
);
echo $data['document_url'];
exit;
}