bionic25 Posted August 12, 2008 Share Posted August 12, 2008 I have a script that allows logged in users to create a listing on the auction site I am developing. I have no problem with this and am using $_GET and "?&id=" etc. to generate individual listing pages. I want users to be able to upload images for their listing too. I plan to store the images in a directory /images/. I have a field in the listings database for bigPic and smallPic where I hope to put a link to the listing's image so when displaying the listing it will have info then just a simple <img src="$bigPic" /> type thing. I have an image upload script (credits go to "Mohamed Ahmed") <!doctype html public "-//w3c//dtd html 4.01 transitional//en"> <html> <head> <title> .: Maaking.Com :. Upload and Resize Images</title> <?php //load the config file include("config.php"); //if the for has submittedd if (isset($_POST['upForm'])){ $file_type = $_FILES['imgfile']['type']; $file_name = $_FILES['imgfile']['name']; $file_size = $_FILES['imgfile']['size']; $file_tmp = $_FILES['imgfile']['tmp_name']; //check if you have selected a file. if(!is_uploaded_file($file_tmp)){ echo "Error: Please select a file to upload!. <br>--<a href=\"$_SERVER[php_SELF]\">back</a>"; exit(); //exit the script and don't do anything else. } //check file extension $ext = strrchr($file_name,'.'); $ext = strtolower($ext); if (($extlimit == "yes") && (!in_array($ext,$limitedext))) { echo "Wrong file extension. <br>--<a href=\"$_SERVER[php_SELF]\">back</a>"; exit(); } //get the file extension. $getExt = explode ('.', $file_name); $file_ext = $getExt[count($getExt)-1]; //create a random file name $rand_name = md5(time()); $rand_name= rand(0,999999999); //get the new width variable. $ThumbWidth = $img_thumb_width; //keep image type if($file_size){ if($file_type == "image/pjpeg" || $file_type == "image/jpeg"){ $new_img = imagecreatefromjpeg($file_tmp); }elseif($file_type == "image/x-png" || $file_type == "image/png"){ $new_img = imagecreatefrompng($file_tmp); }elseif($file_type == "image/gif"){ $new_img = imagecreatefromgif($file_tmp); } //list width and height and keep height ratio. list($width, $height) = getimagesize($file_tmp); $imgratio=$width/$height; if ($imgratio>1){ $newwidth = $ThumbWidth; $newheight = $ThumbWidth/$imgratio; }else{ $newheight = $ThumbWidth; $newwidth = $ThumbWidth*$imgratio; } //function for resize image. if (function_exists(imagecreatetruecolor)){ $resized_img = imagecreatetruecolor($newwidth,$newheight); }else{ die("Error: Please make sure you have GD library ver 2+"); } imagecopyresized($resized_img, $new_img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); //save image ImageJpeg ($resized_img,"$path_thumbs/$rand_name.$file_ext"); ImageDestroy ($resized_img); ImageDestroy ($new_img); //print message echo "<br>Image Thumb: <a href=\"$path_thumbs/$rand_name.$file_ext\">$path_thumbs/$rand_name.$file_ext</a>"; } //upload the big image move_uploaded_file ($file_tmp, "$path_big/$rand_name.$file_ext"); echo "<br>Image Big: <a href=\"$path_big/$rand_name.$file_ext\">$path_big/$rand_name.$file_ext</a>"; echo "<br><br>--<a href=\"$_SERVER[php_SELF]\">back</a>"; }else{ //if the form hasn't been submitted. //print the form echo "<script> function view_img(img_name){ document[img_name].src = upForm.imgfile.value; document[img_name].width = 150; } </script>\n\n <br><h3>:: Browse an Image to Upload:</h3>\n <form method=\"post\" name=\"upForm\" enctype=\"multipart/form-data\" action=\"$_SERVER[php_SELF]\">\n <input type=\"file\" name=\"imgfile\" onchange=\"javascript:view_img('img_vv');\"> <img src='' name='img_vv' width='0'><br>\n Image width will resize to <b>$img_thumb_width</b> with height ratio. <br><input type=\"Submit\" name=\"upForm\" value=\"Upload & Resize\">\n </form> <a href=\"view_gallery.php\">View Images</a>"; } ?> MY PROBLEM: integrating this into my database is confusing the hell out of me, and using LONGBLOB seems a bad way to go about things... Any help is much appreciated, and make it as simple as possible please as I am very new to PHP! Thanks Bionic25 Quote Link to comment https://forums.phpfreaks.com/topic/119318-image-uploads/ Share on other sites More sharing options...
DarkWater Posted August 12, 2008 Share Posted August 12, 2008 You'd just use varchar to store the filename, not LONGBLOB. Quote Link to comment https://forums.phpfreaks.com/topic/119318-image-uploads/#findComment-614646 Share on other sites More sharing options...
discomatt Posted August 12, 2008 Share Posted August 12, 2008 LONGBLOB would be used to store the actual image in the database. Quote Link to comment https://forums.phpfreaks.com/topic/119318-image-uploads/#findComment-614648 Share on other sites More sharing options...
bionic25 Posted August 12, 2008 Author Share Posted August 12, 2008 Thanks for the replies. I was only mentioning longblob as I was saying this WASN'T the way i wanted to do it and indeed am not. "bigPic" is VARCHAR, I'm just having troubles getting the right value into the bigPic field. Quote Link to comment https://forums.phpfreaks.com/topic/119318-image-uploads/#findComment-614656 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.