473,396 Members | 1,970 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Error Creating an Image from an Uploaded File

I was hopeing someone could help me out here. Been stumped on this
one all day.

This function
1. Checks uploaded files.
2. Creates two resized images from each (a full size, and a
thumbnail).
3. Returns an array with a bool (false if the upload failed), and an
error message.

I am having trouble createing a copy of the image from the functions
imagecreatefrom*

Here is the function:

<?php
function process_images() {
//options
$max_bytes = 65536; // max file size
$max_h = 425; // maximum hieght for images
$max_w = 425; // maximum width for images
$t_h = 125; // max hieght for thumbnails
$t_w = 50; // max width for thumbnails
$max = 2; // max number of images

$i = 1;
while((list($k,$err) = each($_FILES['image']['error'])) and $i<=
$max) {
//check for an error
if($err != UPLOAD_ERR_OK) { return array(false,"There was an
error uploading Image #$i."); }
//TODO: Need better error message for errors here

//get file information
$name = $_FILES['image']['name'][$k];
$type = $_FILES['image']['type'][$k];
$temp = $_FILES['image']['tmp_name'][$k];
$size = $_FILES['image']['size'][$k];

//check that this file is an uploaded file
if(!is_uploaded_file($temp)) { return array(false,"There was
an error uploading Image #$i."); }
//check file size
if($size $max_bytes) { return array(false, "Image #$i
exceeds maximum size"); }

//check type and create a new image based off it
switch($type) {
//jpeg
case "image/pjpeg" :
case "image/jpeg" :
case "image/jpg" : $new_img =
imagecreatefromjpeg($temp); break;

//png
case "image/x-png" :
case "image/png" : $new_img = imagecreatefrompng($temp);
break;

//gif
case "image/gif" : $new_img = imagecreatefromgif($temp);
break;

//unrecognized format
default : return array(false, "Image #$i must be in jpeg,
gif, or png format.");
}

#no matter what image I put in here .. it always fails here
if(!$new_image) { return array(false, "Error Creating Image #
$i from $temp."); }

//get the original image size
list($w, $h) = getimagesize($temp);

//caluclate scale percentage
$perc = min($max_w/$w, $max_h/$h);
$thumb_p = min($t_w/$w, $t_h/$h);
//calucalte new dimensions
$new_w = round($perc * $w);
$new_h = round($perc * $h);
$thumb_w = round($thumb_p * $w);
$thumb_h = round($thumb_p * $h);

//create a new image with those dimensions
$res_img = imagecreatetruecolor($new_w, $new_h);
$thumb_img = imagecreatetruecolor($thumb_w, $thumb_h);
//resize now
imagecopyresampled($res_img, $new_img, 0,0,0,0, $new_w,
$new_h, $w,$h);
imagecopyresampled($thumb_img, $new_img, 0,0,0,0, $thumb_w,
$thumb_h, $w,$h);
//save the images
$new_name = time();
imagejpeg($res_img, "img/".$new_name.".jpg");
imagejpeg($thumb_img, "img/thumbs/".$new_name.".jpg");
//free memory
imagedestroy($res_img);
imagedestroy($thumb_img);
imagedestroy($new_image);

$i++;
}

return array(true,'');
}
?>

The functions: imagecreatefromjpeg(), imagecreatefrompng(), and
imagecreatefromgif() all seem to be returning false. Anyone have any
suggestions?

Thanks,
Chris F.

Feb 5 '07 #1
8 2806

While debugging, you should also print $type, since error might just lie
there.
Feb 5 '07 #2
On Feb 5, 2:44 pm, "ctiggerf" <ctigg...@gmail.comwrote:
I was hopeing someone could help me out here. Been stumped on this
one all day.

This function
1. Checks uploaded files.
2. Creates two resized images from each (a full size, and a
thumbnail).
3. Returns an array with a bool (false if the upload failed), and an
error message.

I am having trouble createing a copy of the image from the functions
imagecreatefrom*

Here is the function:

<?php
function process_images() {
//options
$max_bytes = 65536; // max file size
$max_h = 425; // maximum hieght for images
$max_w = 425; // maximum width for images
$t_h = 125; // max hieght for thumbnails
$t_w = 50; // max width for thumbnails
$max = 2; // max number of images

$i = 1;
while((list($k,$err) = each($_FILES['image']['error'])) and $i<=
$max) {
//check for an error
if($err != UPLOAD_ERR_OK) { return array(false,"There was an
error uploading Image #$i."); }
//TODO: Need better error message for errors here

//get file information
$name = $_FILES['image']['name'][$k];
$type = $_FILES['image']['type'][$k];
$temp = $_FILES['image']['tmp_name'][$k];
$size = $_FILES['image']['size'][$k];

//check that this file is an uploaded file
if(!is_uploaded_file($temp)) { return array(false,"There was
an error uploading Image #$i."); }
//check file size
if($size $max_bytes) { return array(false, "Image #$i
exceeds maximum size"); }

//check type and create a new image based off it
switch($type) {
//jpeg
case "image/pjpeg" :
case "image/jpeg" :
case "image/jpg" : $new_img =
imagecreatefromjpeg($temp); break;

//png
case "image/x-png" :
case "image/png" : $new_img = imagecreatefrompng($temp);
break;

//gif
case "image/gif" : $new_img = imagecreatefromgif($temp);
break;

//unrecognized format
default : return array(false, "Image #$i must be in jpeg,
gif, or png format.");
}

#no matter what image I put in here .. it always fails here
if(!$new_image) { return array(false, "Error Creating Image #
$i from $temp."); }

//get the original image size
list($w, $h) = getimagesize($temp);

//caluclate scale percentage
$perc = min($max_w/$w, $max_h/$h);
$thumb_p = min($t_w/$w, $t_h/$h);
//calucalte new dimensions
$new_w = round($perc * $w);
$new_h = round($perc * $h);
$thumb_w = round($thumb_p * $w);
$thumb_h = round($thumb_p * $h);

//create a new image with those dimensions
$res_img = imagecreatetruecolor($new_w, $new_h);
$thumb_img = imagecreatetruecolor($thumb_w, $thumb_h);
//resize now
imagecopyresampled($res_img, $new_img, 0,0,0,0, $new_w,
$new_h, $w,$h);
imagecopyresampled($thumb_img, $new_img, 0,0,0,0, $thumb_w,
$thumb_h, $w,$h);
//save the images
$new_name = time();
imagejpeg($res_img, "img/".$new_name.".jpg");
imagejpeg($thumb_img, "img/thumbs/".$new_name.".jpg");
//free memory
imagedestroy($res_img);
imagedestroy($thumb_img);
imagedestroy($new_image);

$i++;
}

return array(true,'');}

?>

The functions: imagecreatefromjpeg(), imagecreatefrompng(), and
imagecreatefromgif() all seem to be returning false. Anyone have any
suggestions?

Thanks,
Chris F.


I did forget to mention that my php is compiled with GD support
sufficient enough to use the functions and I am using PHP Version
4.3.11 ...

GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Feb 5 '07 #3
On Feb 5, 2:58 pm, "P Pulkkinen"
<perttu.POISTATAMA.pulkki...@POISTATAMA.elisanet.f iwrote:
While debugging, you should also print $type, since error might just lie
there.
I went ahead and added that debugging info and the type seems to be
reporting back correctly for all the types I tried.

Feb 5 '07 #4

"ctiggerf" <ct******@gmail.comkirjoitti
viestissä:11**********************@q2g2000cwa.goog legroups.com...
On Feb 5, 2:58 pm, "P Pulkkinen"
<perttu.POISTATAMA.pulkki...@POISTATAMA.elisanet.f iwrote:
>While debugging, you should also print $type, since error might just lie
there.
I went ahead and added that debugging info and the type seems to be
reporting back correctly for all the types I tried.
What's your error level reporting level, since imagecreatefromsomething
functions echo error message when they fail.
Feb 5 '07 #5
What's your error level reporting level, since imagecreatefromsomething
functions echo error message when they fail.
you could put to the beginning of script:

error_reporting(E_ALL);
Feb 5 '07 #6
On Feb 5, 3:37 pm, "P Pulkkinen"
<perttu.POISTATAMA.pulkki...@POISTATAMA.elisanet.f iwrote:
What's your error level reporting level, since imagecreatefromsomething
functions echo error message when they fail.

you could put to the beginning of script:

error_reporting(E_ALL);
Thanks for your quick replies.
I turned the error reporting on, (it wasn't set high enough to see the
notices) and it is reporting:

Notice: Undefined variable: new_image in /home/content/o/t/b/
otbadmin356/html/order.php on line 365

Which corresponds to the line after the switch statement:

if(!$new_image) { return array(false, "Error Creating Image #$i from
$temp - $type."); }

So I put some echos in to see if I was ever getting inside the switch
statement, and I am. However I do not see any output from the
imagecreatefrom functions.

Feb 5 '07 #7
Rik
ctiggerf <ct******@gmail.comwrote:
Notice: Undefined variable: new_image in /home/content/o/t/b/
otbadmin356/html/order.php on line 365
$new_img != $new_image

--
Rik Wasmus
Feb 5 '07 #8
On Feb 5, 4:40 pm, Rik <luiheidsgoe...@hotmail.comwrote:
ctiggerf <ctigg...@gmail.comwrote:
Notice: Undefined variable: new_image in /home/content/o/t/b/
otbadmin356/html/order.php on line 365

$new_img != $new_image

--
Rik Wasmus
DOH!!

Nothing like spending a whole day looking for a typo. I love
programming.

Thanks for the help, it works great now.
--Chris

Feb 5 '07 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

10
by: John Smith | last post by:
I know that uploading an image to a database has been covered, oh, about 3 trillion times. However, I haven't found anything covering uploading to a MySQL database with .net. Please don't...
0
by: Satish Appasani | last post by:
Hi: I have a ASP.NET form with Web layout which I've achieved using panels. In one of the tab I have a File control to upload Images. When I put a file in the file control and move to another...
25
by: moondaddy | last post by:
I have an application where users need to upload images and in my web.config file I have a setting like this: <httpRuntime maxRequestLength="512" /> Which restricts image larger than 500k from...
1
by: Daniel | last post by:
I have looked everywhere on the web for an answer to this and the only thing I can find is converting the image format when the file is present on the local filesystem. What I want to do is use a...
35
by: Stan Sainte-Rose | last post by:
Hi, What is the better way to save image into a database ? Just save the path into a field or save the image itself ? I have 20 000 images (~ 10/12 Ko per image ) to save. Stan
15
by: David Lozzi | last post by:
Howdy, I have a function that uploads an image and that works great. I love ..Nets built in upload, so much easier than 3rd party uploaders! Now I am making a public function that will take the...
14
by: =?Utf-8?B?U2FtdWVs?= | last post by:
Hi, I have a web app that allows others to upload files, and the problem is that if I allow users to upload image files, fake image can be uploaded and cause XSS issues. In the app, I do...
1
by: RYKLOU | last post by:
I am kinda new to php, but i do know what i am doing kinda, but i came across this error when i am trying to upload a file to my website. Fatal error: Allowed memory size of 8388608 bytes...
4
by: ghjk | last post by:
I wan to add some data using php page to mysql db. But I got the error saying "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.