X-Git-Url: https://git.cyclocoop.org/admin/?a=blobdiff_plain;f=img_auth.php;h=ca69d31d53e80b18d600b2125cf830f9a3282723;hb=1d6c58b72ec1e3209da6ddaba77ae03b650317dd;hp=d63618817a19ec4da0dc043aac146dff9fb7f2e1;hpb=734ca2b4d2a1246fb0ea1e54b861ab423ab5e257;p=lhc%2Fweb%2Fwiklou.git diff --git a/img_auth.php b/img_auth.php index d63618817a..ca69d31d53 100644 --- a/img_auth.php +++ b/img_auth.php @@ -17,7 +17,8 @@ * just that it was. If you want to change this, you can set $wgImgAuthDetails to 'true' * in localsettings.php and it will give the user the reason why access was denied. * - * Your server needs to support PATH_INFO; CGI-based configurations usually don't. + * Your server needs to support REQUEST_URI or PATH_INFO; CGI-based + * configurations sometimes don't. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -68,7 +69,7 @@ function wfImageAuthMain() { $path = "/" . $path; } - // Check for bug 28235: QUERY_STRING overriding the correct extension + // Check for T30235: QUERY_STRING overriding the correct extension $whitelist = []; $extension = FileBackend::extensionFromPath( $path, 'rawcase' ); if ( $extension != '' ) { @@ -162,13 +163,21 @@ function wfImageAuthMain() { } } + $options = []; // HTTP header options + if ( isset( $_SERVER['HTTP_RANGE'] ) ) { + $options['range'] = $_SERVER['HTTP_RANGE']; + } + if ( isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) ) { + $options['if-modified-since'] = $_SERVER['HTTP_IF_MODIFIED_SINCE']; + } + if ( $request->getCheck( 'download' ) ) { $headers[] = 'Content-Disposition: attachment'; } // Stream the requested file wfDebugLog( 'img_auth', "Streaming `" . $filename . "`." ); - $repo->streamFile( $filename, $headers ); + $repo->streamFile( $filename, $headers, $options ); } /**