hi i'm still learning some basics of php, and now i'm trying to modify codes.. and follow tutorials
after following a tutorial i made this multi-uploader which uploads images and thumbnails
but there's a little thing with it, it changes the image name to random name, and i want it to keep the original file name..

i did tried (alot actually) and i found the function that creates the random name, but it has a variables within in it, and i did tried to change these variables, but it seems to be out of my limits for now.. because they are linked with other more complicated lines ..

so i wish if you could help me and comment what did you do so that i learn..

Ali//

<?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>

Recommended Answers

All 2 Replies

Line 69:

 $image_random_name= random_name(15).".".$extension ;

try this:

 $image_random_name = $_FILES['image']['name'][$i];

or you can use $filename which is declared in line 58 and change line 70 to:

$copy = @move_uploaded_file($_FILES['image']['tmp_name'][$i], $images_location.$filename);

Bye!

thanks man, it really worked like charm..

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.