mirror of
https://github.com/moodle/moodle.git
synced 2025-01-17 13:38:32 +01:00
fixed warning caused by missing fields in $course; tweaked mime info for firefox when forcing download - it should use default system mime associations which should be safe in case of firefox.
This commit is contained in:
parent
741c4d0b04
commit
ba4e0b059d
4
file.php
4
file.php
@ -34,9 +34,7 @@
|
||||
}
|
||||
|
||||
// security: limit access to existing course subdirectories
|
||||
// note: course ID must be specified
|
||||
// note: the lang field is needed for the course language switching hack in weblib.php
|
||||
if (!$course = get_record_sql("SELECT id, lang FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'")) {
|
||||
if (!$course = get_record_sql("SELECT * FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'")) {
|
||||
error('Invalid course ID');
|
||||
}
|
||||
|
||||
|
@ -216,10 +216,12 @@ function get_mimetype_description($mimetype,$capitalise=false) {
|
||||
function send_file($path, $filename, $lifetime=86400 , $filter=0, $pathisstring=false, $forcedownload=false, $mimetype='') {
|
||||
global $CFG;
|
||||
|
||||
// Use given MIME type if specified, otherwise guess it using mimeinfo.
|
||||
// Always use application/x-forcedownload if that's requested.
|
||||
$mimetype = $forcedownload ? 'application/x-forcedownload' :
|
||||
($mimetype ? $mimetype : mimeinfo('type', $filename));
|
||||
// Use given MIME type if specified, otherwise guess it using mimeinfo.
|
||||
// IE, Konqueror and Opera open html file directly in browser from web even when directed to save it to disk :-O
|
||||
// only Firefox saves all files locally before opening when content-disposition: attachment stated
|
||||
$isFF = check_browser_version('Firefox', '1.5'); // only FF > 1.5 properly tested
|
||||
$mimetype = ($forcedownload and !$isFF) ? 'application/x-forcedownload' :
|
||||
($mimetype ? $mimetype : mimeinfo('type', $filename));
|
||||
$lastmodified = $pathisstring ? time() : filemtime($path);
|
||||
$filesize = $pathisstring ? strlen($path) : filesize($path);
|
||||
|
||||
|
@ -5126,6 +5126,16 @@ function check_php_version($version='4.1.0') {
|
||||
|
||||
switch ($brand) {
|
||||
|
||||
case 'Firefox': /// Mozilla Firefox browsers
|
||||
|
||||
if (preg_match("/Firefox\/([0-9\.]+)/i", $agent, $match)) {
|
||||
if (version_compare($match[1], $version) >= 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'Gecko': /// Gecko based browsers
|
||||
|
||||
if (substr_count($agent, 'Camino')) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user