|
@@ -34,6 +34,8 @@ namespace KD2\WebDAV
|
|
|
const SHARED_LOCK = 'shared';
|
|
|
const EXCLUSIVE_LOCK = 'exclusive';
|
|
|
|
|
|
+ protected bool $enable_gzip = true;
|
|
|
+
|
|
|
protected string $base_uri;
|
|
|
|
|
|
public string $original_uri;
|
|
@@ -344,17 +346,20 @@ namespace KD2\WebDAV
|
|
|
|
|
|
$this->log('HTTP Range requested: %s-%s', $start, $end);
|
|
|
}
|
|
|
- elseif (isset($_SERVER['HTTP_ACCEPT_ENCODING'])
|
|
|
+ elseif ($this->enable_gzip
|
|
|
+ && isset($_SERVER['HTTP_ACCEPT_ENCODING'])
|
|
|
&& false !== strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')
|
|
|
+ && isset($props['DAV::getcontentlength'])
|
|
|
+
|
|
|
+ && $props['DAV::getcontentlength'] < 8*1024*1024
|
|
|
|
|
|
- && !preg_match('/\.(?:mp4|m4a|zip|docx|xlsx|ods|odt|odp|7z|gz|bz2|rar|webm|ogg|mp3|ogm|flac|ogv|mkv|avi)$/i', $uri)) {
|
|
|
+ && !preg_match('/\.(?:cbz|cbr|cb7|mp4|m4a|zip|docx|xlsx|pptx|ods|odt|odp|7z|gz|bz2|lzma|lz|xz|apk|dmg|jar|rar|webm|ogg|mp3|ogm|flac|ogv|mkv|avi)$/i', $uri)) {
|
|
|
$gzip = true;
|
|
|
header('Content-Encoding: gzip', true);
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (function_exists('apache_setenv'))
|
|
|
- {
|
|
|
+ if (function_exists('apache_setenv')) {
|
|
|
@apache_setenv('no-gzip', 1);
|
|
|
}
|
|
|
|
|
@@ -436,7 +441,7 @@ namespace KD2\WebDAV
|
|
|
|
|
|
if ($gzip) {
|
|
|
$this->log('Using gzip output compression');
|
|
|
- $gzip = deflate_init(ZLIB_ENCODING_GZIP, ['level' => 9]);
|
|
|
+ $gzip = deflate_init(ZLIB_ENCODING_GZIP);
|
|
|
|
|
|
$fp = fopen('php://temp', 'wb');
|
|
|
|
|
@@ -1883,11 +1888,11 @@ RewriteRule ^.*$ /index.php [END]
|
|
|
$fp = fopen(__FILE__, 'r');
|
|
|
|
|
|
if ($relative_uri == '.webdav/webdav.js') {
|
|
|
- fseek($fp, 50401, SEEK_SET);
|
|
|
+ fseek($fp, 50637, SEEK_SET);
|
|
|
echo fread($fp, 27769);
|
|
|
}
|
|
|
else {
|
|
|
- fseek($fp, 50401 + 27769, SEEK_SET);
|
|
|
+ fseek($fp, 50637 + 27769, SEEK_SET);
|
|
|
echo fread($fp, 7004);
|
|
|
}
|
|
|
|