I am putting an upload function in my project. I need to upload only images that is, .jpeg, .gif.

But I am not being able to do this, all types of files are being uploaded. Below is my code:

//set where you want to store files
//in this example we keep file in folder upload
//$HTTP_POST_FILES['ufile']['name']; = upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path= "upload/".$HTTP_POST_FILES['ufile']['name'];
if($ufile !="none")
if(copy($HTTP_POST_FILES['ufile']['tmp_name'], $path))
echo "<table width=300 height=300 align=center>
    <tr><td align=center><B>
        Your symbol has been successfully uploaded.<?B>
echo "<tr><td align=center>";

echo "<tr><td align=center>";
echo "<img src=\"$path\" width=\"150\" height=\"150\">";
echo "</td></tr>";
echo"<tr><td align=center>";
echo "Image name:.$key";
echo "</td></tr>";
echo "<tr><td align=center>";
echo "File Name :".$HTTP_POST_FILES['ufile']['name']."<BR/>";

As you can see in this code the images are saved in a folder but i want to send them in a database. I am not being able to use the POST method to send it to database. Can anyone please help????

8 Years
Discussion Span
Last Post by rajarajan07

here is an upload code i just typed up for you. change the variables to what you need and also change the sql query to your database specifications.

Remember: always store images in a folder on the server and have the path to the file in the database.

here is the code:


//Change this to the name of the page
$thispage = 'index.php';

//Set the allowed file types
$types = array("gif","jpeg","jpg","png");

//Set max size of image (in MB)
$maxSize = '5';

//Set upload directory
$uploadDir = 'upload';

//This function get the extension of the image
function getExtension($str) {
	$i = strrpos($str,".");
	if (!$i) {
		return "";
	$l = strlen($str) - $i;
	$ext = substr($str,$i+1,$l);
	return $ext;

if (isset($_POST['submit'])) {
	if (empty($_FILES['image']['name'])) {
		$result = 'Please choose an image';
	else {
		$imageName = $_FILES['image']['name'];
		$exten = getExtension($imageName);
		if (!in_array($exten,$types)) {
			$result = 'Unknown extension, please choose a different image';
		else {
			$tmpFile = $_FILES['image']['tmp_name'];
			$size = filesize($tmpFile);
			if ($size > ($maxSize * 1024)) {
				$result = 'Image exceeds size limit, choose a smaller image';
			else {
				$newName = $uploadDir . '/' . $time . '.' . $exten;
				if (!copy($tmpFile,$newName)) {
					$result = 'Unable to upload image, try again';
				else {
					$sql   = "INSERT INTO `images` (`image_path`) VALUES ('" . $newName . "')";
					$query = mysql_query($sql) or die('Error: ' . mysql_error());
					$result = 'Image Uploaded Successfully';
$html =<<<HTML
<form action="$thispage" method="post" enctype="multipart/form-data">
<table border="0" cellspacing="0" cellpadding="5">
		<td align="right">Image:</td>
		<td align="left"><input type="file" name="image" /></td>
		<td colspan="2" align="center"><input type="submit" name="submit" value="Upload" /></td>
		<td colspan="2" align="center">$result</td>

echo $html;


there might be some errors because i don't have time to test it. let me know and I will fix it.

Votes + Comments
Good work!

Hi kkeith29,
The code works fine but I am having problems retrieving the images from my database. The code only sends the file name to the database and not the image itself.

But Then how do I retrieve those images and then display them.

I am using the normal

<?php echo $rows['symbol']; ?>

whereby symbol is my column name.

It rerieves other images that I have manually entered in the database but only file names of uploaded images. I guess I need to retrieve from the folder 'upload' but how to do it?

Could you please help???


Code works but it posts image without filename - in folder it is just " .gif" and in database it is "upload/.gif"

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.