Jump to content

[SOLVED] displaying image from a folder on my server


xx_princess_xx

Recommended Posts

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>

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

 

 

Link to comment
Share on other sites

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"/>

Link to comment
Share on other sites

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>

 

 

Link to comment
Share on other sites

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 } ?>

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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);
  }
?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.