2011-03-24 15 views
0

我有問題試圖讓我的圖片上傳正確,我有一個感覺它的基本錯誤。問題是,它似乎並沒有要上傳的圖片:正確的方式做一個上傳表格

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

什麼問題? – Jonah 2011-03-24 03:22:27

+0

wheres你的代碼?我點擊鏈接,它超時 – Drewdin 2011-03-24 03:23:17

+1

請發佈您的代碼**在這裏**,而不是另一個網站。 – deceze 2011-03-24 03:25:37

回答

0

嘗試做一個測試,你只是:
var_dump($_FILES)
這是包含所有上傳文件的全局數組。如果這是空的,請檢查:

  1. 權限上的臨時目錄
  2. 如果上傳文件被允許
  3. 如果你的表單元素的外觀(有點)像<form enctype="multipart/form-data">