Jump to content

[SOLVED] Confused with error message - Call to undefined method


adam291086

Recommended Posts

Some one was helping me on this and i am confuse and hes gone offline. I can the following error;

 

 

Fatal error: Call to undefined method: gallerysizer->getlocation() in /homepages/12/d214897219/htdocs/adam/create_thumbnails.php on line 21

 

I get what it means but wheres the problem in my code?

 


<?php
include("GallerySizer.php");
include("config.php");
DEFINE("IMAGE_FULL", '../photos/');


// Album cover
$cover = $_FILES['image']['name'][$_POST['album_cover']];
if (!$_REQUEST['process']){
echo("Error! No images chosen for processing. <br />");
echo("Click <a href='index.php'>here</a> to start processing your images.");
die();
} elseif (!$_POST['album_id']){
echo("No album selected. Please <a href=\"\">choose an album</a> to upload images to.");
die();
} else {
for($i = 0; $i < count($_FILES['image']['tmp_name']); $i++){
$fileName = $_FILES['image']['name'][$i];
copy($_FILES['image']['tmp_name'][$i], IMAGE_FULL . $fileName);
$thumb = new GallerySizer();
if($thumb->getLocation($_FILES['image']['name'][$i])){
if($thumb->loadImage()){
echo("Still here!");
if($thumb->getSize()){
if($thumb->setThumbnail()){
if($thumb->copyImage()){
if($thumb->resizeImage()){
$thumb->copyResize();
$thumb->display(); 
}
}
}
}
} else {
echo("Invalid image/file has been uploaded. Please upload a supported file-type (JPEG/PNG)"); 
unlink(IMAGE_FULL . $fileName);
die();
}
insert_location($thumb);
} else {
echo("Error processing images: " . mysql_error());
}
// If image matches cover selection, update album cover
if($cover == $_FILES['image']['name'][$i]){
$sql = "UPDATE albums SET album_cover = '" . $thumb->getThumbLocation() . "' WHERE album_id = " . $_POST['album_id'];
$result = @mysql_query($sql) or die("Error inserting records: " . mysql_error());
} 
}
}
function insert_location($thumb_obj){
$image_location = $thumb_obj->getImageLocation();
$thumb_location = $thumb_obj->getThumbLocation();
$dbcnx = mysql_connect("localhost", "root", "");
mysql_select_db("album", $dbcnx);
$sql = "INSERT INTO photos values(0, '$_POST[photo_title]', '$_POST[photo_desc]', NOW(), '$image_location', '$thumb_location', $_POST[album_id])";
$result = mysql_query($sql, $dbcnx) or die("Error inserting record(s) into the database: " . mysql_error());
if ($result){
echo("Images successfully converted and stored! <br />Click <a href='index.html'>here</a> to continue.");
}
}
?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ah I see... the function getLocation is not in a class

You closed the class...

<?php
class GallerySizer{
      var $img;     // Original image file object
      var $thumb;          // Thumbnail file object
      var $resize;         // Resized image file name
      var $width;          // Original image width
      var $height;         // Original image height
      var $new_width;      // Resized image width
      var $new_height;     // Resized image height
      var $image_path;     // Path to image
      var $thumbscale;     // Scale to resize thumbnail
      var $image_file;     // Resized image filename
      var $thumbnail;      // Thumbnail image file object
      var $random_file;    // Resized image file name (random)
} // you closed it here... move this sign down

   /*****
     * Retrieves path to uploaded image.
     * Retrieves filename of uploaded image
     */
    function getLocation($image){
        $this->image_file = str_replace("..", "/", $image);
        $this->image_path = IMAGE_BASE . $this->image_file;
        return true;
    }
//...
?>

 

But better is to learn PHP ;)

thanks. I have no solved the next few errors but stumped at this one

 

 

Parse error: parse error, unexpected $ in /homepages/12/d214897219/htdocs/adam/gallerysizer.php on line 199

 

This is because there is no $ on line 199

<?php


// Define script constants
      DEFINE("IMAGE_BASE", '/adam/photos/');
      DEFINE("THUMB_BASE", '/adam/thumbs/');
      DEFINE("MAX_WIDTH", 100);
      DEFINE("MAX_HEIGHT", 100);
      DEFINE("RESIZE_WIDTH", 800);
      DEFINE("RESIZE_HEIGHT", 600);

class GallerySizer{
      var $img;     // Original image file object
      var $thumb;          // Thumbnail file object
      var $resize;         // Resized image file name
      var $width;          // Original image width
      var $height;         // Original image height
      var $new_width;      // Resized image width
      var $new_height;     // Resized image height
      var $image_path;     // Path to image
      var $thumbscale;     // Scale to resize thumbnail
      var $image_file;     // Resized image filename
      var $thumbnail;      // Thumbnail image file object
      var $random_file;    // Resized image file name (random)


   /*****
     * Retrieves path to uploaded image.
     * Retrieves filename of uploaded image
     */
    function getLocation($image){
        $this->image_file = str_replace("..", "/", $image);
        $this->image_path = IMAGE_BASE . $this->image_file;
        return true;
    }



   /*****
    * Determines image type, and creates an image object
    */
    function loadIMAGE(){
        $this->img = null;
        $extension = strtolower(end(explode('.', $this->image_path)));
        if ($extension == 'jpg' || $extension == 'jpeg'){
            $this->img = imagecreatefromjpeg($this->image_path);
        } else if ($extension == 'png'){
            $this->img = imagecreatefrompng($this->image_path);
        } else {
            return false;
        }


// Sets a random name for the image based on the extension type

       $file_name = strtolower(current(explode('.', $this->image_file)));
        $this->random_file = $file_name . $this->getRandom() . "." . $extension;
        $this->thumbnail = $this->random_file;
        $this->converted = $this->random_file;
        $this->resize = $this->random_file;
        return true;
}

/*****
* Retrieves size of original image.  Sets the conversion scale for both         *   the thumbnail and resized image
*/
function getSize(){
      if ($this->img){
$this->width = imagesx($this->img);
$this->height = imagesy($this->img);
$this->thumbscale = min(MAX_WIDTH / $this->width, MAX_HEIGHT / $this->height);
      } else {
          return false;
      }
       return true;


min(MAX_WIDTH / $this->width, MAX_HEIGHT / $this->height);

  /*****
     * Creates a thumbnail image from the original uploaded image
     */
    function setThumbnail(){
        // Check if image is larger than max size
        if ($this->thumbscale < 1){
            $this->new_width = floor($this->thumbscale * $this->width);
            $this->new_height = floor($this->thumbscale * $this->height);
            // Create temp image
            $tmp_img = imagecreatetruecolor($this->new_width, $this->new_height);
            // Copy and resize old image into new
            imagecopyresampled($tmp_img, $this->img, 0, 0, 0, 0, $this->new_width, $this->new_height, $this->width, $this->height);
            $this->thumb = $tmp_img;
        }
        return true;
    }

$this->new_width = floor($this->thumbscale * $this->width);    $this->new_height = floor($this->thumbscale * $this->height);

// Create temp image
     $tmp_img = imagecreatetruecolor($this->new_width, $this->new_height);

imagecopyresampled($tmp_img, $this->img, 0, 0, 0, 0, $this->new_width, $this->new_height, $this->width, $this->height);
     $this->thumb = $tmp_img;

/*****
     * Resizes uploaded image to desired viewing size
     */
    function resizeImage(){
     if ($this->width < RESIZE_WIDTH){
         $this->resize = $this->img;
            return true;
        } else {
            // Create re-sized image
            $tmp_resize = imagecreatetruecolor(RESIZE_WIDTH, RESIZE_HEIGHT);
            // Copy and resize image
            imagecopyresized($tmp_resize, $this->img, 0, 0, 0, 0, RESIZE_WIDTH, RESIZE_HEIGHT, $this->width, $this->height);
            imagedestroy($this->img);
            $this->resize = $tmp_resize;
            return true;
        }
    }

$tmp_resize = imagecreatetruecolor(RESIZE_WIDTH, RESIZE_HEIGHT);

imagecopyresampled($tmp_resize, $this->img, 0, 0, 0, 0, RESIZE_WIDTH, RESIZE_HEIGHT, $this->width, $this->height);
            imagedestroy($this->img);
            $this->resize = $tmp_resize;

/*****
     * Copies thumbnail image to specified thumbnail directory.
     * Sets permissions on file
     */
    function copyThumbImage(){
imagejpeg($this->thumb, $this->thumbnail);
        if(!@copy($this->thumbnail, THUMB_BASE . $this->thumbnail)){
            echo("Error processing file... Please try again!");
            return false;
        }
        if(!@chmod($this->thumbnail, 666)){
            echo("Error processing file... Please try again!");
            return false;
        }
        if(!@unlink($this->thumbnail)){
            echo("Error processing file... Please try again!");
            return false;
        }
        return true;
    }

imagejpeg($this->thumb, $this->thumbnail);

/*****
     * Copies the resized image to the specified images directory.
     * Sets permissions on file.
     */
    function copyResizedImage(){
        imagejpeg($this->resize, $this->converted);
        if(!@copy($this->converted, IMAGE_BASE . $this->converted)){
            echo("Error processing file... Please try again!");
            return false;
        }
        if(!@chmod($this->converted, 666)){
            echo("Error processing file... Please try again!");
            return false;
        }
        if(!unlink($this->converted)){
            echo("Error processing file... Please try again!");
            return false;
        }
        // Delete the original uploaded image
        if(!unlink(IMAGE_BASE . $this->image_file)){
            echo("Error processing file... Please try again!");
            return false;
        }
        return true;
    }

/*****
     * Generates a random number.  Random number is used to rename
     * the original uploaded image, once resized.
     */
    function getRandom(){        
        return "_" . date("dmy_His");
    }

/*****
     * Returns path to thumbnail image
     */
    function getThumbLocation(){
        return "thumbs/" . $this->random_file;
    }

/*****
     * Returns path to resized image
     */
    function getImageLocation(){
        return "photos/" . $this->random_file;
    }
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.