Page 1 of 1

Warnuings...php upload/resize multiples input files

Posted: Mon Sep 14, 2009 10:01 am
by macpeace
Hi all.. :lol:

I've been working in this code do receive multiple DATA from input files. This is working ok, resize and upload. But if I just send one file, or two files, i receive thsi warnings::

Warning: getimagesize(images/) [function.getimagesize]: failed to open stream: Permission denied in C:\Programas\EasyPHP 2.0b1\www\fotos\teste.php on line 26

Warning: Division by zero in C:\Programas\EasyPHP 2.0b1\www\fotos\teste.php on line 27

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\Programas\EasyPHP 2.0b1\www\fotos\teste.php on line 36
Problem In Creating image

If I send the three files it runs without warnings!!!!

Help me solve this please...

the code:

Code: Select all

<?php
if(isset($_POST['Submit']))
{
        $size = 90; // the thumbnail height
        $filedir = 'images/'; // the directory for the original image
        $thumbdir = 'images/'; // the directory for the thumbnail image
        $prefix = 'small_'; // the prefix to be added to the original name
        $maxfile = '800000';
        $mode = '0666';
        
        $i = 1;
        $htmlFieldName = 'image' . $i;
        while(isset($_FILES[$htmlFieldName])){
                
                $userfile_name = $_FILES[$htmlFieldName]['name'];
                $userfile_tmp = $_FILES[$htmlFieldName]['tmp_name'];
                $userfile_size = $_FILES[$htmlFieldName]['size'];
                $userfile_type = $_FILES[$htmlFieldName]['type'];
                
                if (isset($_FILES[$htmlFieldName]['name'])) 
                {
                        $prod_img = $filedir.$userfile_name;
                        $prod_img_thumb = $thumbdir.$prefix.$userfile_name;
                        move_uploaded_file($userfile_tmp, $prod_img);
                        chmod ($prod_img, octdec($mode));
                        $sizes = getimagesize($prod_img);
                        $aspect_ratio = $sizes[1]/$sizes[0]; 
                        if ($sizes[0] <= $size)
                        {
                                $new_width = $sizes[1];
                                $new_height = $sizes[0];
                        }else{
                                $new_height = $size;
                                $new_width = abs($new_height/$aspect_ratio);
                        }
                        $destimg = ImageCreateTrueColor($new_width,$new_height) or die('Problem In Creating image');
                        $srcimg = ImageCreateFromJPEG($prod_img) or die('Problem In opening Source Image');
                        ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die('Problem In resizing');
                        ImageJPEG($destimg,$prod_img_thumb,90) or die('Problem In saving');
                        imagedestroy($destimg);
                }
                        echo '
                        <br />
                        <a href="'.$prod_img.'">
                        <img src="'.$prod_img_thumb.'" width="'.$new_width.'" heigt="'.$new_height.'">
                        </a>';
                
                $i++;
                $htmlFieldName = 'image' . $i;
        }
        }else{
        echo '
        <form method="POST" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">
        <input type="file" name="image1" /><br />
        <input type="file" name="image2" /><br />
        <input type="file" name="image3" /><br />
        <input type="Submit" name="Submit" value="Submit">
        </form>';
}
?>

Re: Warnuings...php upload/resize multiples input files

Posted: Mon Sep 14, 2009 1:57 pm
by macpeace
Did'nt understand your sugestion!!... can you explain me better... sorry Iam a begginer coder!!