cindea sorin cindea sorin - 1 month ago 8
PHP Question

Php oop file upload

I work on a oop php file upload script. Is simple. But doesnt work. What is the problem? I learn how to use $_FILE, and how to code oop style.

Thanks.

upload.php are :

<?php
class upload{
public $src = "./upload/";
public $tmp;
public $filename;
public $type;
public $uploadfile;

public function startupload(){
$this -> filename = $_FILES["file"]["name"];
$this -> tmp = $_FILES["file"]["tmp_name"];
$this -> uploadfile = $src . basename($this -> name);
}
public function uploadfile(){
if(move_uploaded_file($this -> tmp, $this -> uploadFile)){
return true;
}
}


}

?>


index.php are:

<?php
require_once('./lib/upload.php');
?>

<?php
if(isset($_POST['file'])){
$fileupload = new upload();
if($fileupload -> uploadfile()){
echo 'Fisierul a fost uploadat';
}
}
?>

<html>
<head></head>
<body>
<form align="center" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
Select upload file: <input type="file" name="file" required="yes" />
<input type="submit" value="Trimite" />
<p>
</form>
</body>
</html>


Where i'm wrong with my tinking?

Answer

The problem in your code is not triggered is because you checked variable file in the post variable and you wont find it there. the corect way to do it is

if(isset($_FILES['file'])) {
    $fileupload = new upload();

    if($fileupload -> uploadfile()) {
        echo 'Fisierul a fost uploadat';
    }
}

further more your class will not work you should pass the variables to a constructor and rename upload-> startupload() to upload-> upload

Comments