xx_princess_xx Posted May 11, 2009 Share Posted May 11, 2009 I am able to upload an image, into a folder in my called 'images' (htdocs/images) I need a way of displaying this image onto a web page, can anyone help me out? Quote Link to comment Share on other sites More sharing options...
Potatis Posted May 11, 2009 Share Posted May 11, 2009 Is the name of the image in the database? Or do you just want to display it from the directory? Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 this is the code i used to upload the file, which are stored in a folder called images, i want a page that will display that same file i uploaded <?php //define a maxim size for the uploaded images in Kb define ("MAX_SIZE","100"); //This function reads the extension of the file. It is used to determine if the file is an image by checking the extension function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } //This variable is used as a flag. The value is initialized with 0 (meaning no error found) //and it will be changed to 1 if an errro occures. //If the error occures the file will not be uploaded. $errors=0; //checks if the form has been submitted if(isset($_POST['Submit'])) { //reads the name of the file the user submitted for uploading $image=$_FILES['image']['name']; //if it is not empty if ($image) { //get the original name of the file from the clients machine $filename = stripslashes($_FILES['image']['name']); //get the extension of the file in a lower case format $extension = getExtension($filename); $extension = strtolower($extension); //if it is not a known extension, we will suppose it is an error and will not upload the file, //otherwise we will do more tests if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { //print error message echo '<h1>Unknown extension!</h1>'; $errors=1; } else { //get the size of the image in bytes //$_FILES['image']['tmp_name'] is the temporary filename of the file //in which the uploaded file was stored on the server $size=filesize($_FILES['image']['tmp_name']); //compare the size with the maxim size we defined and print error if bigger if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; } //we will give an unique name, for example the time in unix time format $image_name=time().'.'.$extension; //the new name will be containing the full path where will be stored (images folder) $newname="images/".$image_name; //we verify if the image has been uploaded, and print error instead $copied = copy($_FILES['image']['tmp_name'], $newname); if (!$copied) { echo '<h1>Copy unsuccessfull!</h1>'; $errors=1;} } } } //If no errors registred, print the success message if(isset($_POST['Submit']) && !$errors) { echo "<h1>File Uploaded Successfully! Try again!</h1>"; } ?> <!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" --> <form name="newad" method="post" enctype="multipart/form-data" action=""> <table> <tr><td><input type="file" name="image"></td></tr> <tr><td><input name="Submit" type="submit" value="Upload image"></td></tr> </table> </form> Quote Link to comment Share on other sites More sharing options...
Potatis Posted May 11, 2009 Share Posted May 11, 2009 You only need a single line of html code to show an image from the images folder. <img src="images/filename.jpg" alt="photo description"/> If you have the file name in the database, you need different code. Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 basically this is how i want the form to work form 1)the user uploads the image into a folder on my server form 2) fills out the name of the image which is stored on a mysql database (along with other info) a page that displayes everything from the database, when it get to the image file, i want it so some how get the image from the folder and display it on the page. Quote Link to comment Share on other sites More sharing options...
Potatis Posted May 11, 2009 Share Posted May 11, 2009 It's not difficult, but you need to have the form add the image name in your database where you are storing your user's profile. The variable to post from your upload form into the database profile table seems to be $newname, but you can enter it manually with your form if you want. Have a php query enter this filename with your user's profile info, then echo the file name back where the photo should go. <img src="images/<?php echo $filename ?>" alt="photo description"/> Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 ok i will give it a go, wish me luk Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 The form is working like i mensioned b4, how can i sent the uploaded image name, as a image location in mysql database this code takes the name of the original file name and gives it a tempory name, i need this tempory name to be sent to the database, <?php //define a maxim size for the uploaded images in Kb define ("MAX_SIZE","100"); //This function reads the extension of the file. It is used to determine if the file is an image by checking the extension function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } //This variable is used as a flag. The value is initialized with 0 (meaning no error found) //and it will be changed to 1 if an errro occures. //If the error occures the file will not be uploaded. $errors=0; //checks if the form has been submitted if(isset($_POST['Submit'])) { //reads the name of the file the user submitted for uploading $image=$_FILES['image']['name']; //if it is not empty if ($image) { //get the original name of the file from the clients machine $filename = stripslashes($_FILES['image']['name']); //get the extension of the file in a lower case format $extension = getExtension($filename); $extension = strtolower($extension); //if it is not a known extension, we will suppose it is an error and will not upload the file, //otherwise we will do more tests if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) { //print error message echo '<h1>Unknown extension!</h1>'; $errors=1; } else { //get the size of the image in bytes //$_FILES['image']['tmp_name'] is the temporary filename of the file //in which the uploaded file was stored on the server $size=filesize($_FILES['image']['tmp_name']); //compare the size with the maxim size we defined and print error if bigger if ($size > MAX_SIZE*1024) { echo '<h1>You have exceeded the size limit!</h1>'; $errors=1; } //we will give an unique name, for example the time in unix time format $image_name=time().'.'.$extension; //the new name will be containing the full path where will be stored (images folder) $newname="images/".$image_name; //we verify if the image has been uploaded, and print error instead $copied = copy($_FILES['image']['tmp_name'], $newname); if (!$copied) { echo '<h1>Copy unsuccessfull!</h1>'; $errors=1;} } } } //If no errors registred, print the success message if(isset($_POST['Submit']) && !$errors) { echo "<h1>File Uploaded Successfully! Try again!</h1>"; } ?> <!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" --> <form name="newad" method="post" enctype="multipart/form-data" action=""> <table> <tr><td><input type="file" name="image"></td></tr> <tr><td><input name="Submit" type="submit" value="Upload image"></td></tr> </table> </form> Quote Link to comment Share on other sites More sharing options...
gamerzfuse Posted May 11, 2009 Share Posted May 11, 2009 I just recently did this, not sure exactly how yours works but if this is of any help: ADDING IMAGE: <?php if ($vehicles->picture->Visible) { // picture ?> <tr<?php echo $vehicles->picture->RowAttributes ?>> <td class="ewTableHeader">Picture</td> <td<?php echo $vehicles->picture->CellAttributes() ?>><span id="el_picture"> <input type="file" name="x_picture" id="x_picture" size="30"<?php echo $vehicles->picture->EditAttributes() ?>> </div> </span><?php echo $vehicles->picture->CustomMsg ?></td> </tr> <?php } ?> Referencing Image <?php if ($vehicles->picture->Visible) { // picture ?> <tr<?php echo $vehicles->picture->RowAttributes ?>> <td<?php echo $vehicles->picture->CellAttributes() ?>> <?php if ($vehicles->picture->HrefValue <> "") { ?> <?php if (!is_null($vehicles->picture->Upload->DbValue)) { ?> <a href="<?php echo ew_UploadPathEx(FALSE, "images/") . $vehicles->picture->Upload->DbValue ?>" target="_blank"> <img src="<?php echo ew_UploadPathEx(FALSE, "images/") . $vehicles->picture->Upload->DbValue ?>" border=0 width=300<?php echo $vehicles->picture->ViewAttributes() ?>> </a> <?php } elseif (!in_array($vehicles->CurrentAction, array("I", "edit", "gridedit"))) { ?> <?php } ?> <?php } else { ?> <?php if (!is_null($vehicles->picture->Upload->DbValue)) { ?> <a href="<?php echo ew_UploadPathEx(FALSE, "images/") . $vehicles->picture->Upload->DbValue ?>" target="_blank"> <img src="<?php echo ew_UploadPathEx(FALSE, "images/") . $vehicles->picture->Upload->DbValue ?>" border=0 width=300<?php echo $vehicles->picture->ViewAttributes() ?>> </a> <?php } elseif (!in_array($vehicles->CurrentAction, array("I", "edit", "gridedit"))) { ?> <?php } ?> Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 gamerzfuse - no one except you can understand those snippet of codes you just posted. princess - you know what I find odd? You have Try again in your success conditional, but not in your Copy unsuccessful one. By the way, you misspelled successful. if (!$copied) { echo '<h1>Copy unsuccessfull!</h1>'; $errors=1;} } } } //If no errors registred, print the success message if(isset($_POST['Submit']) && !$errors) { echo "<h1>File Uploaded Successfully! Try again!</h1>"; } In your second if statement there, the one where the file is uploaded successfully, use an echo to print out the image. The image should be $newname. So like - echo '<img src="/', $newname, '" />'; Give it a try. I may have got the file path wrong, but you can fix that. Best of luck! Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 i added that line, when the image is loaded successfully there is a box with a red cross like the image wasnt loaded, Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 echo '<img src="', $newname, '" />'; Try that. Quote Link to comment Share on other sites More sharing options...
Axeia Posted May 11, 2009 Share Posted May 11, 2009 Think ken2k7 is trying to post dots instead of comma's as you join a string with a variable with dots, not comma's. And I'm 100% sure he knows as well, must be having a fight with his keyboard.. So echo '<img src="'.$newname.'" alt="" />'; (Sneaked in an alt in there as it's a required attribute) Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 Axeia, nope. You can use commas in echo. I believe dots are slower than commas because PHP has to concatenate the strings. I believe in comma format, it just prints them out in succession. Thanks for the xHTML fix. Quote Link to comment Share on other sites More sharing options...
Axeia Posted May 11, 2009 Share Posted May 11, 2009 Never too old to learn I guess, never seen it used before and I thought I had seen plenty of lines of code already. Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 thanks it worked, how can i get it to display the image on another page? Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 What are you trying to do? Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 once the image is uploaded, i want the image name(which is $newname) to be sent to a mysql database, and then displayed in a table on a webpage Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 Oh okay, well you can do that. You just run an INSERT SQL to insert the image into a MySQL table and then on the page, run a SELECT SQL. Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 once the user uploaded the image, the file location is stored in the variable $newname how can i send this to the mysql database? how do i insert it $_POST[$newname] because that doesn't work, after that is done, i need a way of displaying all the information from the database, so far when i am displaying it in a table my format is like this; echo "<td>" . $row[<img src=photo] . "</td>"; i am trying different ways but cant get then working Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 Can you show me your INSERT query? Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 11, 2009 Author Share Posted May 11, 2009 I have an idea, i want the variable $newname to echo into an input text field in a form, that way when i submit the form it should submit the url of the image to the database Quote Link to comment Share on other sites More sharing options...
Ken2k7 Posted May 11, 2009 Share Posted May 11, 2009 Did you create the table(s) in your database yet? Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 12, 2009 Author Share Posted May 12, 2009 this is the code for the table CREATE TABLE properties ( pid int(5) NOT NULL auto_increment, type char(20) NOT NULL default 'unknown', price int( NOT NULL, address char(200) NOT NULL default 'unknown', post_code char(7) NOT NULL default 'unknown', photo varchar(50) NOT NULL default 'unknown', isavailable char(3) NOT NULL, agent_id int(5) NOT NULL, PRIMARY KEY (PID), FOREIGN KEY (agent_id) REFERENCES agents(aid) ON UPDATE CASCADE ON DELETE CASCADE ) ENGINE=INNODB AUTO_INCREMENT=1; this is the form and insert code, i have only included the photo parts as the rest of it works. <form enctype="multipart/form-data" action=<?php echo $_SERVER[ 'PHP_SELF']; ?> method="post"> <table border="0"> <tr> <td>Photo:</td> <td> <input type="file" name="image"> <input name="Submit" type="submit" value="Upload image"> </td> </tr> <!--when the user clicks 'upload image' i want the $newname to be echo into the photo ID text field, then when the form is submitted it should insert the value into the database--> <tr> <td>Photo ID:</td> <td><input type="text" name="photo"/> </td> </tr> </table> </form> <?php if(isset($errorID) && $errorID==0) { $con = mysql_connect("localhost", "root", ""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("comreg098hassan", $con); $sql="INSERT INTO properties (photo) VALUES ('$_POST[photo]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo "1 record added"; mysql_close($con); } ?> Quote Link to comment Share on other sites More sharing options...
xx_princess_xx Posted May 12, 2009 Author Share Posted May 12, 2009 i have done it, what i did was use a $_GET function and then echo into the text field thanks 4 all yr help 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.