Правильный способ сделать форму загрузки - PullRequest
0 голосов
/ 24 марта 2011

У меня возникли проблемы при попытке загрузить мои изображения правильно, я чувствую, что это основная ошибка.Проблема заключается в том, что оно не загружает изображение:

addimage.php

<?php

include('includes/session.php');

include('includes/header.php');

include('includes/class/class.form.php');

include('includes/class/class.image.php');

define("MAX_SIZE","1000000");

$formImageUpload = new Form('addimage.php', 'imageUpload', 'post','multipart/form-data', ''); //return CheckImage();

$Message = "";


if(isset($_POST["submit"])) {

    $formImageUpload->setStickyData($_POST);

    $formImageUpload->checkUpload("ImagePath","image/jpeg", MAX_SIZE);


    $formImageUpload->checkNotEmpty("ImageName");


    if($formImageUpload->getValid() == true){

        $AddImage = new Image();

        $AddImage->setImageName($_POST["ImageName"]);

        $AddImage->setImagePath($_POST["ImagePath"]);

        $AddImage->imageUpload();

        $AddImage->saveImage();

        $Message = "Thank You, Your Image Has Been Uploaded";

        print_r($_FILES);

        exit;

    } else {

        $Message = "Sorry You Have An Error Please Try Again";
    }

}

$formImageUpload->openFieldset();
$formImageUpload->makeInputBox('Image','ImageName','');
$formImageUpload->makeHiddenField("MAX_FILE_SIZE", MAX_SIZE);
$formImageUpload->makeUpLoadBox('Image Path',"ImagePath",'');
$formImageUpload->makeSubmitButton("submit","Image Upload");
$formImageUpload->closeFieldset();
?>

 <section class="left">

<h1  class="Heading">Add Image</h1>

    <p class="loginError"><?php echo $Message;?></p>

<?php echo $formImageUpload->getHTML(); ?>

</section> <!-- Section Left End -->

<section class="right">
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.
    Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
    It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
    </p>
</section><!-- Section Right End -->



<?php
include('includes/footer.php');
?>

imageclass.php

<?php

require_once('./includes/database.php');

class Image{

    private $iID;

    private $sImageName;

    private $sImagePath;

    public function loadImage($iID){

        global $database;

        $Query = "SELECT * FROM Gallery WHERE id =" .$iID;

        $resResult = $database->query($Query);

        //Fetch The Row

        $aImage = $database->fetch_array($resResult);

        $this->iID = $aImage["id"];
        $this->sImageName = $aImage["imageName"];
        $this->sImagePath = $aImage["imagePath"]; 

        $this->bExisting = true;

}

public function saveImage(){

    global $database;

    if($this->bExisting == false){

        $Query = "INSERT INTO Gallery(imageName,imagePath) VALUES ('". $database->escape_value($this->sImageName)."','".$database->escape_value($this->sImagePath)."')";

        $bResult = $database->query($Query);

        if($bResult){

            $this->iID = $database->get_last_insert_id();

            $this->bExisting = true;

        } else {

            die("Save Failed");
        }

    }
}

public function removeImage($image_id = NULL){

    // if there is no ID Exit

    if(!$image_id) return;

    global $database;

    $image_id = $database->escape_value($image_id);

    $this->loadImage($image_id);

    $database->query("DELETE FROM Gallery WHERE id = $image_id");

    if(is_file($this->image_path . $this->setImagePath)) unlink($this->image_path . $this->setImagePath);

    //Unsets Image var

    $this->_unsetImage();


}

function _unsetImage() {

    $this->iID = NULL;
    $this->sImageName = NULL;
    $this->sImagePath = NULL; 
    $this->bExisting = FALSE;

}




            // Get Functions

public function getImageID(){
        return $this->iID;
}    

public function getImageName(){
        return $this->sImageName;
}

public function getImagePath(){
        return $this->sImagePath;
}

// Set Functions

public function setImageID($iID){

    global $database;

    $iID = $database->escape_value($iID);

    $this->iID = $iID;
}    


public function setImageName($sImageName){

    global $database;

    $sImageName = $database->escape_value($sImageName);

    $this->sImageName = $sImageName;
}   

public function setImagePath($sImagePath){

    global $database;

    $sImagePath = $database->escape_value($sImagePath);

    $this->sImagePath = $sImagePath;
}


public function imageUpload($file){

    $this->bExisting = false;

    $location = base_url()."includes/images/Gallery/";

    $target = $_FILES['ImagePath']['name']; 

    $target = move_uploaded_file($_FILES ['ImagePath']['tmp_name'], $location.$target);
}



}

?>

1 Ответ

0 голосов
/ 01 апреля 2011

Попробуйте сделать тест, где вы просто:
var_dump($_FILES)
Это глобальный массив, который содержит все загруженные файлы. Если это поле пустое, проверьте:

  1. Разрешения на временный каталог
  2. Если загрузка файлов разрешена
  3. Если ваш элемент формы выглядит (немного) как <form enctype="multipart/form-data">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...