insrtsnhere13 Posted April 10, 2006 Share Posted April 10, 2006 [code]<?php// The file$filename = 'http://www.pwncaeks.com/gallery/cantlogin.JPG';// Set a maximum height and width$width = 100;$height = 100;// Content typeheader('Content-type: image/jpeg');// Get new dimensionslist($width_orig, $height_orig) = getimagesize($filename);if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig;} else { $height = ($width / $width_orig) * $height_orig;}// Resample$image_p = imagecreatetruecolor($width, $height);$image = imagecreatefromjpeg($filename);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);// Outputimagejpeg($image_p, null, 100);?> [/code]with that code, i can create the picture in the $filename variable but when its outputted, i need it to be saved.. i cant figure out how to do this.. Quote Link to comment Share on other sites More sharing options...
kenrbnsn Posted April 10, 2006 Share Posted April 10, 2006 The second parameter to the imagejpeg() function, if given, should be a string containing a file name.See the [a href=\"http://www.php.net/imagejpeg\" target=\"_blank\"]manual entry[/a] form imagejpeg().Ken Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 10, 2006 Author Share Posted April 10, 2006 thanks for your reply, but when i put a something in there, i just get the exact file name of my php file displayed.. no image is saved or anything.. just.. [a href=\"http://www.pwncaeks.com/dashboard/testgall3.php\" target=\"_blank\"]http://www.pwncaeks.com/dashboard/testgall3.php[/a]thats all.. Quote Link to comment Share on other sites More sharing options...
kenrbnsn Posted April 10, 2006 Share Posted April 10, 2006 Please post the code that give that result.Ken Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 10, 2006 Author Share Posted April 10, 2006 [code]imagejpeg($image_p, "http://www.pwncaeks.com/gallery/", 100);[/code] Quote Link to comment Share on other sites More sharing options...
kenrbnsn Posted April 11, 2006 Share Posted April 11, 2006 Do not put a URL for the name of the file. Put in a local filename.Ken Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 11, 2006 Author Share Posted April 11, 2006 im not quite sure what you mean.. Quote Link to comment Share on other sites More sharing options...
sdaniels Posted April 11, 2006 Share Posted April 11, 2006 you dnt want to put http:// yadda yadda yadda, you want to put the relative path to your file from the page that generates that script. for instance if you use apache. then your website should be in your htdocs folder. if that page is in that folder and your image in in a file name 'images' in htdocs, then you would want to put /images/filename.jpg rather than that url. Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 11, 2006 Author Share Posted April 11, 2006 [code]imagejpeg($image_p, "/usr/home/pwncae/public_html/gallery/thumb_image.jpg", 100);[/code]im using that now.. the image is created succesfully.. however, this "http://www.pwncaeks.com/dashboard/testgall3.php" is still output to the user.. i would prefer that instead of that.. i could write like.. your image was uploaded.. thanks.. blah blah Quote Link to comment Share on other sites More sharing options...
sdaniels Posted April 11, 2006 Share Posted April 11, 2006 oh i see what your saying now... are you using apache? Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 11, 2006 Author Share Posted April 11, 2006 not sure.. im using a seperate host..also.. how can i name the new image based off the name of the original image Quote Link to comment Share on other sites More sharing options...
sdaniels Posted April 11, 2006 Share Posted April 11, 2006 [!--quoteo(post=363510:date=Apr 10 2006, 07:25 PM:name=insrtsnhere13)--][div class=\'quotetop\']QUOTE(insrtsnhere13 @ Apr 10 2006, 07:25 PM) [snapback]363510[/snapback][/div][div class=\'quotemain\'][!--quotec--]not sure.. im using a seperate host..also.. how can i name the new image based off the name of the original image[/quote]im confued again, i thought you meant that when they clicked a link they were getting a directory rather than a page. in wich case i was going to ask if you had you conf file set to parse correctly, but this is not the case. could we see the code for testgall3.php? I think i understand what your doing, if im correct you want a user to upload an image, then you want it to verify that it has been recieved and echo out some message stating that you have recieved it. and currently it is echoing a url back to the user? Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 11, 2006 Author Share Posted April 11, 2006 you're basically correct.. i want them to upload it, have the uploaded image resized to a more managable size, then have that file saved.. filename based off the original uploaded file.. then, i want a thank you msg to be displayed telling the user it was uploaded.. and then a link to send them back to the upload page to do it again...[code]<?phpif (isset($_FILES['userfile']['tmp_name'])){$filename = $_FILES['userfile']['tmp_name'];// Set a maximum height and width$width = 100;$height = 100;$caption = $_POST['caption'];// Content typeheader('Content-type: image/jpeg');// Get new dimensionslist($width_orig, $height_orig) = getimagesize($filename);if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig;} else { $height = ($width / $width_orig) * $height_orig;}// Resample$image_p = imagecreatetruecolor($width, $height);$image = imagecreatefromjpeg($filename);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);// Outputimagejpeg($image_p, "/usr/home/pwncae/public_html/gallery/image.jpg", 100); }else{?><form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="3000000"> Image:<br><input name="userfile" type="file"><br>Caption:<br><input type="text" name="caption" size="40"><br><input type="submit" name="upload" value="Upload"><? }?> [/code] Quote Link to comment Share on other sites More sharing options...
kenrbnsn Posted April 11, 2006 Share Posted April 11, 2006 I took your code and ran it locally on my machine. With a few minor modifications it ran fine.[list][*]Remove this line: [code]<?php header('Content-type: image/jpeg'); ?>[/code] since it is not needed when you're saving the image to a file.[*]The original name of the file is stored in $_FILES['userfile']['name'][*]You should use a relative path name for your gallery, so that if you move your code it will still work. Something like: [code]<?php imagejpeg($image_p, 'gallery/' . $_FILES['userfile']['name'], 100); ?>[/code][*]Make sure the directory where you're storing the thumbnail images is writable by the web server.[*]If you add this code:[code]<?phpecho 'Thumbnail image saved as gallery/' . $_FILES['userfile']['name'] . '<br>';echo '<img src="gallery/' . $_FILES['userfile']['name'] .'" height="' . $height . '" width="' . $width . '" alt="' . $_POST['caption'] . '">'; ?>[/code] right after storing the thumbnail image and before the "else", then you can see that it worked.[/list]You can see my version of your code in action at [a href=\"http://www.rbnsn.com/phpfreaks/savingthumbs.php\" target=\"_blank\"]http://www.rbnsn.com/phpfreaks/savingthumbs.php[/a]Ken Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 11, 2006 Author Share Posted April 11, 2006 thanks, i knew that damn header was ruining everything, and i found a way to name images better than i had before.. whenever a use uploads an image, it is resized twice, once to a more managable size, and once to a thumbnail, then, based on the number on images that user already has stored in a database, a number is put after the name.. so two images are saved likejewbilee_1.jpgjewbilee_1_thumb.jpgthen the database is written to say who uploaded it, the path to both pics.. and the caption, works perfectly.. ill remove the header though and add the confirmation Quote Link to comment Share on other sites More sharing options...
insrtsnhere13 Posted April 11, 2006 Author Share Posted April 11, 2006 having a new problem now.. with certain images, it keeps saying division by zero on the aspect ration part which leads me to believe it isnt actually getting the image, but it only does that (as far as i know now) with my prom pictures from this weekend, ive tested several large high quality images and it works fine.. but now with my prom ones..[code]<?session_start();include("connect.php");$_SESSION['username'] = "$username";echo "<br>Add a new image to your personal gallery<br>Only JPeg files may be uploaded as of now<br>";$number = "SELECT * FROM gallery WHERE owner = '$username'";$numberresult = mysql_query($number);$number = mysql_num_rows($numberresult);$number++;if (isset($_FILES['userfile']['tmp_name'])){$filename = $_FILES['userfile']['tmp_name'];$destination_dir = "/usr/home/pwncae/public_html/gallery/";$destination = $destination_dir.$username."_".$number.".jpg";$destination_thumb = $destination_dir.$username."_".$number."_thumb.jpg";$url = "http://www.pwncaeks.com/gallery/".$username."_".$number.".jpg";$thumb = "http://www.pwncaeks.com/gallery/".$username."_".$number."_thumb.jpg";$caption = $_POST['caption'];$width = 650;$height = 650;list($width_orig, $height_orig) = getimagesize($filename);if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig;} else { $height = ($width / $width_orig) * $height_orig;}$image_p = imagecreatetruecolor($width, $height);$image = imagecreatefromjpeg($filename);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);imagejpeg($image_p, $destination, 100);$width = 100;$height = 100;list($width_orig, $height_orig) = getimagesize($filename);if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig;} else { $height = ($width / $width_orig) * $height_orig;}$image_p = imagecreatetruecolor($width, $height);$image = imagecreatefromjpeg($filename);imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);imagejpeg($image_p, $destination_thumb, 100);$query = "INSERT INTO gallery (owner, url, thumb, caption) VALUES ('$username', '$url', '$thumb', '$caption')";$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); echo "Thumbnail image saved as $url<br>";echo "<a href=\"$url\" target=\"new\"><img src=\"$thumb\"></a><br>$caption";}else{?><form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="POST"> Image:<br><input name="userfile" type="file"><br>Caption:<br><input type="text" name="caption" size="40"><br><input type="submit" name="upload" value="Upload"><? }?> [/code] Quote Link to comment 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.