Jump to content

[SOLVED] Uploading images from a form to a sql database! help


xx_princess_xx

Recommended Posts

I have code that uploades the image, the second code is supposed to display everything from the database but it doesn't any ideas will be really helpful

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr> 
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile"> 
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}

$con = mysql_connect("localhost", "root", "");
   if (!$con)
  {
   die('Could not connect: ' . mysql_error());
  }
  
  mysql_select_db("images", $con);

$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed'); 
    
   echo "1 record added";
   mysql_close($con);
  
echo "<br>File $fileName uploaded<br>";
} 
?>
</body>
</html>

 

<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("images", $con);

$result = mysql_query("SELECT * FROM upload");

echo "<table border='1' padding='1'>
<tr>
<th>name</th>
<th>size</th>
<th>type</th>
<th>content</th>
</tr>";while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['name'] . "</td>";
  echo "<td>" . $row['size'] . "</td>";
  echo "<td>" . $row['type'] . "</td>";
  echo "<td>" . $row['content'] . "</td>";
  echo "</tr>";
  }
echo "</table>";mysql_close($con);
?>

 

I found a tutorial and followed it correctly i think,

 

but i gor an error: parse error on line 102 (last line)

the tutorial is here http://www.reconn.us/content/view/30/51/

 

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.