mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-24 06:48:40 +01:00
* WebDAV: fix for Netdrive to work correct with non-ascii chars like German umlauts
- unfortunatly Netdrive uses no User-Agent header, so we can only detect it on the absense of one - we use now rawurlencode with replacing / and : afterwards, instead of the minimal version, which is the default
This commit is contained in:
parent
85d9e5e4ee
commit
59cc3578b8
@ -1594,7 +1594,7 @@ class HTTP_WebDAV_Server
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($options['ranges'])) {
|
if (!isset($options['ranges'])) {
|
||||||
$options['ranges'] = array();
|
$options['ranges'] = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$options["ranges"][] = $range;
|
$options["ranges"][] = $range;
|
||||||
@ -1637,7 +1637,7 @@ class HTTP_WebDAV_Server
|
|||||||
// TODO multipart support is missing (see also above)
|
// TODO multipart support is missing (see also above)
|
||||||
if (0 == fseek($stream, $options['ranges'][0]["start"], SEEK_SET)) {
|
if (0 == fseek($stream, $options['ranges'][0]["start"], SEEK_SET)) {
|
||||||
$length = $options['ranges'][0]["end"] - $options['ranges'][0]["start"]+1;
|
$length = $options['ranges'][0]["end"] - $options['ranges'][0]["start"]+1;
|
||||||
|
|
||||||
while (!feof($options['stream'])) {
|
while (!feof($options['stream'])) {
|
||||||
if ($length <= 0) {
|
if ($length <= 0) {
|
||||||
break;
|
break;
|
||||||
@ -1672,7 +1672,7 @@ class HTTP_WebDAV_Server
|
|||||||
}
|
}
|
||||||
|
|
||||||
fclose($stream);
|
fclose($stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->http_status($stat);
|
$this->http_status($stat);
|
||||||
} else {
|
} else {
|
||||||
@ -2490,7 +2490,8 @@ class HTTP_WebDAV_Server
|
|||||||
{
|
{
|
||||||
// cadaver (and probably all neon using agents) need a more complete url encoding
|
// cadaver (and probably all neon using agents) need a more complete url encoding
|
||||||
// otherwise special chars like "$,()'" in filenames do NOT work
|
// otherwise special chars like "$,()'" in filenames do NOT work
|
||||||
if (strpos($_SERVER['HTTP_USER_AGENT'],'neon') !== false)
|
// netdrive does NOT use a User-Agent, but requires full urlencoding for non-ascii chars (eg. German Umlauts)
|
||||||
|
if (strpos($_SERVER['HTTP_USER_AGENT'],'neon') !== false || !isset($_SERVER['HTTP_USER_AGENT']))
|
||||||
{
|
{
|
||||||
return strtr(rawurlencode($url),array(
|
return strtr(rawurlencode($url),array(
|
||||||
'%2F' => '/',
|
'%2F' => '/',
|
||||||
|
Loading…
Reference in New Issue
Block a user