diff --git a/inc/media.php b/inc/media.php index 8a18e8b2e11f0761cfa97c336975266674af9948..ac0629b3f6e73006f110ffc8d78413d00b0705ef 100644 --- a/inc/media.php +++ b/inc/media.php @@ -245,7 +245,7 @@ function media_upload($ns,$auth){ } // get filename - $id = cleanID($ns.':'.$id); + $id = cleanID($ns.':'.$id,false,true); $fn = mediaFN($id); // get filetype regexp diff --git a/inc/pageutils.php b/inc/pageutils.php index 50e76d44e8f227318bff926d62ff48bb6c95f8c0..abfca08de1d3a8585eaadb7a5499f8a7b9c34f20 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -86,8 +86,9 @@ function getID($param='id',$clean=true){ * @author Andreas Gohr <andi@splitbrain.org> * @param string $raw_id The pageid to clean * @param boolean $ascii Force ASCII + * @param boolean $media Allow leading or trailing _ for media files */ -function cleanID($raw_id,$ascii=false){ +function cleanID($raw_id,$ascii=false,$media=false){ global $conf; global $lang; static $sepcharpat = null; @@ -126,7 +127,7 @@ function cleanID($raw_id,$ascii=false){ //clean up $id = preg_replace($sepcharpat,$sepchar,$id); $id = preg_replace('#:+#',':',$id); - $id = trim($id,':._-'); + $id = ($media ? trim($id,':.-') : trim($id,':._-')); $id = preg_replace('#:[:\._\-]+#',':',$id); $cache[(string)$raw_id] = $id;