AlexeyK
Новичок
Дата регистрации:
15.02.2013 00:10:50
Сообщений: 4
Вот пытаюсь освоить PHP на базе вашего курса от нуля до гуру.
Застрял на последнем задании в заделе ООП. там где нужно заменить объекты на статик.
Вот что у меня получилось:
Это index.php
require_once "lib\uploadimage_class.php";
require_once "lib\uploadtext_class.php";
if($_POST["upload"]) {
$success_text = UploadText::uploadFile($_FILES["text"]);
$success_image = UploadImage::uploadFile($_FILES["image"]);
}
Upload text
require_once "upload_class.php";
class UploadText extends Upload {
protected static $dir = "text";
protected static $mime_types = array("text/plain"
}
Upload Image:
require_once "upload_class.php";
class UploadImage extends Upload {
protected static $dir = "image";
protected static $mime_types = array("image/png", "image/jpeg", "image/gif"
}
А это сам класс аплоад:
abstract class Upload {
protected static $dir;
protected static $mime_types;
public static function uploadFile($file) {
if(!self::isSecurity($file))
return false;
$uploadfile = self::$dir."/".$file["name"];
return move_uploaded_file($file["tmp_name"], $uploadfile);
}
protected static function isSecurity($file){
$blacklist = array(".php", ".html", ".php3", ".php4", ".phtml", ".htm"
foreach ($blacklist as $item) {
if(preg_match("/$item\$/i", $file["name"])) return false;
}
$type = $file["type"];
for ($i=0; $i < count(self::$mime_types); $i++) {
if($type == self::$mime_types[$i]) break;
if($i+1 == count(self::$mime_types)) return false;
}
$size = $file["size"];
if($size > 2048000) return false;
return true;
}
}
Код ошибок не выдаёт, но при этом ничего не работает. Есть подозрение, что проблемма с $uploadfile(я в коде отметил красным), так как вызов его через echo выдаёт только имя файла без папки. Но тогда файлы должны загружаться в корень, но и там этого не происходит. Подскажите где ошибка?