X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fplupload.php;h=bab728677a052913b8798d3d5903d84f76da41bb;hb=9c0a8f8cfb7868c07197af8ad1a29b316d81605d;hp=743a0907ee926a4764dbd3a4e6c2e18b3a29805b;hpb=02838718a24585bf72f3e4c26a8e4f1d19817dc9;p=platal.git diff --git a/classes/plupload.php b/classes/plupload.php index 743a090..bab7286 100644 --- a/classes/plupload.php +++ b/classes/plupload.php @@ -53,9 +53,9 @@ class PlUpload trigger_error('can\'t create upload directory: ' . $filename, E_USER_ERROR); } } - $filename .= $this->forlife . '-' . $this->category; + $filename .= $this->forlife . '--' . $this->category; if ($file_id) { - $filename .= '-' . $file_id; + $filename .= '--' . $file_id; } return $filename; } @@ -74,7 +74,7 @@ class PlUpload } else if (!move_uploaded_file($file['tmp_name'], $this->filename)) { return false; } - $this->checkContentType(); + $this->checkContentType(); return true; } @@ -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; + $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 listFilenames($forlife = '*', $category = '*') + { + $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 clear($user = '*', $category = '*') + 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::listFiles($user, $category, false); - array_walk($files, 'unlink'); + $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]];