fraser5002 Posted March 29, 2010 Share Posted March 29, 2010 Hi Im trying to get some code together that will upload and resize an image to my server but im having trouble getting it to work. When i upload an image i just get a message saying; "CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality " then a whole load of strange characters does anyone know what i am doing wrong . The upload page called upload.php has the following code; <?php if( isset($_POST['submit']) ) { include('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['uploaded_image']['tmp_name']); $image->resizeToWidth(150); $image->output(); } else { ?> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="uploaded_image" /> <input type="submit" name="submit" value="Upload" /> </form> <?php } ?> and the include php file SimpleImage.php has the following code <?php class SimpleImage { var $image; var $image_type; function load($filename) { $image_info = getimagesize($filename); $this->image_type = $image_info[2]; if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); } elseif( $this->image_type == IMAGETYPE_GIF ) { $this->image = imagecreatefromgif($filename); } elseif( $this->image_type == IMAGETYPE_PNG ) { $this->image = imagecreatefrompng($filename); } } function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image,$filename,$compression); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image,$filename); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image,$filename); } if( $permissions != null) { chmod($filename,$permissions); } } function output($image_type=IMAGETYPE_JPEG) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image); } } function getWidth() { return imagesx($this->image); } function getHeight() { return imagesy($this->image); } function resizeToHeight($height) { $ratio = $height / $this->getHeight(); $width = $this->getWidth() * $ratio; $this->resize($width,$height); } function resizeToWidth($width) { $ratio = $width / $this->getWidth(); $height = $this->getheight() * $ratio; $this->resize($width,$height); } function scale($scale) { $width = $this->getWidth() * $scale/100; $height = $this->getheight() * $scale/100; $this->resize($width,$height); } function resize($width,$height) { $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } } ?> I found the code on the net does anything scream out as something im doing wrong? Quote Link to comment https://forums.phpfreaks.com/topic/196879-help-with-image-upload-and-resize/ Share on other sites More sharing options...
jcbones Posted March 29, 2010 Share Posted March 29, 2010 Number 1. You are not saving your image to a file. Maybe you don't want to, but there is no reason to upload if you aren't going to do that. Number 2. You are outputting binary code without telling the browser what it is. As the browser only displays things as it is told to do so, it will just display the raw binary data. Try this: (Un-tested) <?php if( isset($_POST['submit']) ) { header('Content-type: image/jpeg'); include('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['uploaded_image']['tmp_name']); $image->resizeToWidth(150); $image->output(); } else { ?> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="uploaded_image" /> <input type="submit" name="submit" value="Upload" /> </form> <?php } ?> Quote Link to comment https://forums.phpfreaks.com/topic/196879-help-with-image-upload-and-resize/#findComment-1033750 Share on other sites More sharing options...
ignace Posted March 29, 2010 Share Posted March 29, 2010 does anyone know what i am doing wrong . $image->output(); should be: $image->save('path/to/file'); EDIT: jcbones beat me to it Quote Link to comment https://forums.phpfreaks.com/topic/196879-help-with-image-upload-and-resize/#findComment-1033765 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.