0

today i was working on a php script that uploads the images and makes a thumbnails out of them..
well, i had the idea, i wrote the outline then i finished the script
i had a couple of syntax errors and i fixed them,,

but still there's some thing wrong with the code, no image was uploaded and no thumbnail created !!

here's the code

<?php
    function create_thumbnail ($source, $destination, $thumb_width) {
    $size = getimagesize($source);
    $width = $size[0];
    $height = $size[1];
    $x = 0;
    $y = 0;
    if ($width > $height ) {
        $x = ceil (($width - $height) / 2);
        $width = $height;}

    elseif ($height> $width) { ]
        $y = ceil (($height - $width) / 2);
        $height = $width; }

    $new_image = imagecreatetruecolor($thumb_width,$thumb_width)
                or die ('Cannot intialize new image stream, make sure to read the instructions');
    $extension = get_image_extension($source);
    if($extension=='jpg' || $extension=='jpeg')
        $image = imagecreatefromjpeg($source);
    if($extension=='gif') // for gif
        $image = imagecreatefromgif($source);
    if($extension == 'png') // for png
        $image = imagecreatefrompng($source);

        //now in relative to the upper lines the next few lines....

    imagecopyresampled($new_image,$image,0,0, $x,$y,$thumb_width,$thumb_width,$width,$height);
    if($extension=='jpg' || $extension=='jpeg')
        imagejpeg($new_image,$destination);
    if ($extension == 'gif')
        imagegif($new_image, $destination);
    if($extension=='png')
        imagepng($new_image,$destination);
    }

    function get_image_extension($name) { // gets the image extension
        $name = strtolower($name); // converts the name to lowercase
        $i = strrpos($name, ".");
        if (!$i) {return ""; }
            $l = strlen($name) - $i;
        $extension = strlen($name,$i+1,$l);
        return $extension;
    }

    function random_name($length) {
        $characters = "ABCDEFGHIJKLMNOPQRSUVWXYZ0123456789";
        $name = "";
        for ($i=0; $i < $length; $i++) {
        $name .= $characters [mt_rand(0, strlen($characters) - 1)];    }
        return "image-".$name;
    }



    $image_location = "images/featured/"; // images directory
    $thumbs_location = "images/tn/"; // thumnails directory
    $thumbs_width = 100; // width in pixels
    $maximum_size = 99999999999999; // maximum size in kb (i know, but 99999999999999 looks pretty )
    $result ="click browse to locate the image you want to upload"; // just a message bro.

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

        if($_files['image']['name'] == "") { // checks
            $result = "please choose an image !!";} // message


        else{
            $size=filesize($_FILES['image']['tmp_name']);
            $filename = stripslashes($_FILES['image']['name']);
            $extension = get_image_extension($filename    );
            if ($size > $maximum_size) {
                $result = "image is too large, please choose a smaller one.";}

            else  // now checks the extension..
                if (($extension != "jpg") &&     // not a jpg
                    ($extension != "jpeg") &&   // not a jpeg
                    ($extension != "png") &&   // not a png
                    ($extension != "gif")) {  // not a gif !! WTF is it ???
                    $result = "it's not an image file, please choose an image with proper extension";}

                else  

                    $image_random_name= random_name(15).".".$extension ;
                    $copy = @copy($_FILES['image']['tmp_name'], $images_location.$image_random_name);
                    if (!$copy) { $result = "we're sorry, there's a technical error, please try again, please"; }



                else // you finally reached this (else) and the image will be uploaded Hallelujah

                    { create_thumbnail ($images_location.$image_random_name,$thumbs_location.$image_random_name, $thumbs_width) ;
                     $result = "image has been uploaded"; // it actually refers to me
                }
        }

    }
echo "$result";
?>

<html>
    <head>
        <title>Multi_uploader with thumbnails</title>
    </head>

<body>
    <form action="multi_uploader_with_thumbnails.php" method="POST" encypte="multipart/form-data">
        <input type="hidden" name="MAX_FILE_SIZE" value="99999999999999"> <!-- this is kb but 99999999999999 looks cool -->
        <input type="file" name="image" multiple="multiple" />
        <input name="submit" id="submit" type="submit" value="Upload them">
    </form>


</body>
</html>
2
Contributors
1
Reply
2
Views
4 Years
Discussion Span
Last Post by hr.Ziggurat
0

its better to use from a php IDE to ensure typing.
u did some typing error.
and the input tag name (file type) must end with [] , to access to the each uploaded file , u must give the file index number to the $_FILES array , then its better to use a for loop.
try this:

<?php
    function create_thumbnail ($source, $destination, $thumb_width) {
    $size = getimagesize($source);
    $width = $size[0];
    $height = $size[1];
    $x = 0;
    $y = 0;
    if ($width > $height ) {
        $x = ceil (($width - $height) / 2);
        $width = $height;}
    elseif ($height> $width) {
        $y = ceil (($height - $width) / 2);
        $height = $width; }
    $new_image = imagecreatetruecolor($thumb_width,$thumb_width)
                or die ('Cannot intialize new image stream, make sure to read the instructions');
    $extension = get_image_extension($source);
    if($extension=='jpg' || $extension=='jpeg')
        $image = imagecreatefromjpeg($source);
    if($extension=='gif') // for gif
        $image = imagecreatefromgif($source);
    if($extension == 'png') // for png
        $image = imagecreatefrompng($source);
        //now in relative to the upper lines the next few lines....
    imagecopyresampled($new_image,$image,0,0, $x,$y,$thumb_width,$thumb_width,$width,$height);
    if($extension=='jpg' || $extension=='jpeg')
        imagejpeg($new_image,$destination);
    if ($extension == 'gif')
        imagegif($new_image, $destination);
    if($extension=='png')
        imagepng($new_image,$destination);
    }
    function get_image_extension($name) { // gets the image extension
        $name = strtolower($name); // converts the name to lowercase
        $i = strrpos($name, ".");
        if (!$i) {return ""; }
            $l = strlen($name) - $i;
        $extension = substr($name,$i+1,strlen($name));
        return $extension;
    }
    function random_name($length) {
        $characters = "ABCDEFGHIJKLMNOPQRSUVWXYZ0123456789";
        $name = "";
        for ($i=0; $i < $length; $i++) {
        $name .= $characters [mt_rand(0, strlen($characters) - 1)];    }
        return "image-".$name;
    }
    $images_location = "images/featured/"; // images directory
    $thumbs_location = "images/tn/"; // thumnails directory
    $thumbs_width = 100; // width in pixels
    $maximum_size = 99999999999999; // maximum size in kb (i know, but 99999999999999 looks pretty )
    $result ="click browse to locate the image you want to upload"; // just a message bro.
    if (isset($_POST['submit'])){
        if($_FILES['image']['name'][0] == "") { // checks
            $result = "please choose an image !!";} // message
        else{
            for($i=0;$i<count($_FILES['image']['name']);$i++){
                $size=filesize($_FILES['image']['tmp_name'][$i]);
                $filename = stripslashes($_FILES['image']['name'][$i]);
                $extension = get_image_extension($filename);
                if ($size > $maximum_size) {
                    $result = "image is too large, please choose a smaller one.";}
                else  // now checks the extension..
                    if (($extension != "jpg") &&     // not a jpg
                        ($extension != "jpeg") &&   // not a jpeg
                        ($extension != "png") &&   // not a png
                        ($extension != "gif")) {  // not a gif !! WTF is it ???
                        $result = "it's not an image file, please choose an image with proper extension";}
                    else  
                        $image_random_name= random_name(15).".".$extension ;
                        $copy = @move_uploaded_file($_FILES['image']['tmp_name'][$i], $images_location.$image_random_name);
                        if (!$copy) { $result = "we're sorry, there's a technical error, please try again, please"; }
                    else // you finally reached this (else) and the image will be uploaded Hallelujah
                        { create_thumbnail ($images_location.$image_random_name,$thumbs_location.$image_random_name, $thumbs_width) ;
                         $result = "image has been uploaded"; // it actually refers to me
                    }
            }
        }
    }
echo "$result";
?>
<html>
    <head>
        <title>Multi_uploader with thumbnails</title>
    </head>
<body>
    <form id="frm1" action="multi_uploader_with_thumbnails.php" method="post" enctype="multipart/form-data" autocomplete="on">
        <input type="hidden" name="MAX_FILE_SIZE" value="99999999999999"> <!-- this is kb but 99999999999999 looks cool -->
        <input type="file" name="image[]" multiple />
        <input name="submit" id="submit" type="submit" value="Upload them">
    </form>
</body>
</html>
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.