X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fplupload.php;h=ce143a66ec15daffc1e07d8345031673f40f0fd3;hb=fc10da9a3e2cf019a4c6722288e2f063e3ec1728;hp=743a0907ee926a4764dbd3a4e6c2e18b3a29805b;hpb=02838718a24585bf72f3e4c26a8e4f1d19817dc9;p=platal.git diff --git a/classes/plupload.php b/classes/plupload.php index 743a090..ce143a6 100644 --- a/classes/plupload.php +++ b/classes/plupload.php @@ -116,7 +116,7 @@ class PlUpload public function rm() { @unlink($this->filename); - clearstatcache(); + @clearstatcache(); } public function rename($fn) @@ -139,22 +139,46 @@ class PlUpload return file_exists($this->filename); } - static public function listFiles($forlife = '*', $category = '*', $basename = false) + static public function listRawFiles($forlife = '*', $category = '*', $uniq = false, $basename = false) { global $globals; $filename = $globals->spoolroot . '/spool/uploads/temp/'; $filename .= $forlife . '-' . $category; + if (!$uniq) { + $filename .= '-*'; + } $files = glob($filename); if ($basename) { - array_walk($files, 'basename'); + $files = array_map('basename', $files); } return $files; } - static public function clear($user = '*', $category = '*') + static public function listFilenames($forlife = '*', $category = '*') { - $files = PlUpload::listFiles($user, $category, false); - array_walk($files, 'unlink'); + $files = PlUpload::listRawFiles($forlife, $category, false, true); + foreach ($files as &$name) { + list($forlife, $cat, $fn) = explode('-', $name, 3); + $name = $fn; + } + return $files; + } + + static public function &listFiles($forlife = '*', $category = '*', $uniq = false) + { + $res = array(); + $files = PlUpload::listRawFiles($forlife, $category, $uniq, true); + foreach ($files as $name) { + list($forlife, $cat, $fn) = explode('-', $name, 3); + $res[$fn] = new PlUpload($forlife, $cat, $fn); + } + return $res; + } + + static public function clear($user = '*', $category = '*', $uniq = false) + { + $files = PlUpload::listRawFiles($user, $category, $uniq, false); + array_map('unlink', $files); } public function contentType() @@ -175,7 +199,14 @@ class PlUpload { static $map; if (!isset($map)) { - $map = array (1 => 'gif', 2 => 'jpeg', 3 => 'png'); + $tmpmap = array (IMG_GIF => 'gif', IMG_JPG => 'jpeg', IMG_PNG => 'png', IMG_WBMP => 'bmp', IMG_XPM => 'xpm'); + $map = array(); + $supported = imagetypes(); + foreach ($tmpmap as $type=>$mime) { + if ($supported & $type) { + $map[$type] = $mime; + } + } } $array = getimagesize($this->filename); $array[2] = @$map[$array[2]];