contextlevel != CONTEXT_USER) { print_error('invalidarguments'); } $userid = $context->instanceid; if ($USER->id != $userid) { print_error('invaliduserid'); } switch ($filearea) { case 'private': $itemid = 0; $forcedownload = true; break; default: send_file_not_found(); } $relativepath = '/'.implode('/', $args); $fs = get_file_storage(); $fullpath = $context->id.$filearea.$itemid.$relativepath; if (!$file = $fs->get_file_by_hash(sha1($fullpath)) or $file->get_filename() == '.') { send_file_not_found(); } // ======================================== // finally send the file // ======================================== session_write_close(); // unlock session during fileserving send_stored_file($file, 0, false, $forcedownload);