0

okay.. what I wanna do is,
1. upload an image into temp folder -- done
2. create a folder -- done
3. create an index.html in the new folder -- done
4. create thumbnail image in the new folder -- page dead without errors
5. copy(rename) the original image into the new folder. -- rename function returns false

and here's my code
My code works perfectly in Window but in Ubuntu. There must be some** server setting issues** I am not aware of.. Please help

$filePath = $tempFolder.$fileName;
$newFolder = ".../"
$indexPatth = $newFolder."index.html";
$thumbnailPath = $newFolder."thumb.jpg";
$renamePath = $newFolder."original.jpg";

if(file_exists($filePath)){

    //make new folder with 777 permission  -- done
    $old = umask(0);
    mkdir($newFolder, 0777);
    chmod($newFolder, 0777);
    umask($old);

    // make the uploaded photo in temp folder 777 permission  -- done
    chmod($filePath, 0777);

    //write index.html  -- done
    $file = fopen($SiteVal['ContentUploadDir'].$hash."/index.html","w");
    fwrite($file,"Hi");
    fclose($file);

    //create a thumbnail image  -- page dies without errors
    createThumbs($filePath, $thumbnailPath, $width);

    //rename(move) the original image  -- rename() returns false
    rename($filePath, $renamePath);

}

function createThumbs($src, $dest, $desired_width = false, $desired_height = false)
{
    /*If no dimenstion for thumbnail given, return false */
    if (!$desired_height&&!$desired_width) return false;
    $fparts = pathinfo($src);
    $ext = strtolower($fparts['extension']);
    /* if its not an image return false */
    if (!in_array($ext,array('gif','jpg','png','jpeg'))) return false;

    /* read the source image */
    if ($ext == 'gif')
        $resource = imagecreatefromgif($src);
    else if ($ext == 'png')
        $resource = imagecreatefrompng($src);
    else if ($ext == 'jpg' || $ext == 'jpeg')
        $resource = imagecreatefromjpeg($src);

    $width  = imagesx($resource);
    $height = imagesy($resource);
    /* find the "desired height" or "desired width" of this thumbnail, relative to each other, if one of them is not given  */
    if(!$desired_height) $desired_height = floor($height*($desired_width/$width));
    if(!$desired_width)  $desired_width  = floor($width*($desired_height/$height));

    /* create a new, "virtual" image */
    $virtual_image = imagecreatetruecolor($desired_width,$desired_height);

    /* copy source image at a resized size */
    imagecopyresized($virtual_image,$resource,0,0,0,0,$desired_width,$desired_height,$width,$height);

    /* create the physical thumbnail image to its destination */
    /* Use correct function based on the desired image type from $dest thumbnail source */
    $fparts = pathinfo($dest);
    $ext = strtolower($fparts['extension']);
    /* if dest is not an image type, default to jpg */
    if (!in_array($ext,array('gif','jpg','png','jpeg'))) $ext = 'jpg';
    $dest = $fparts['dirname'].'/'.$fparts['filename'].'.'.$ext;

    if ($ext == 'gif')
        imagegif($virtual_image,$dest);
    else if ($ext == 'png')
        imagepng($virtual_image,$dest,1);
    else if ($ext == 'jpg' || $ext == 'jpeg')
        imagejpeg($virtual_image,$dest,100);

    return array(
        'width'     => $width,
        'height'    => $height,
        'new_width' => $desired_width,
        'new_height'=> $desired_height,
        'dest'      => $dest
    );
}
1
Contributor
1
Reply
15
Views
2 Years
Discussion Span
Last Post by 9tontruck
1

Solution:

Install php-gd
use copy and unlink instead of rename (just for uploaded image)

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.