Image Upload in php 6.0
Posted: Sun Oct 03, 2010 7:45 am
Hi Guys,
Please I'm having a little bit of fuss in this code the image is displaying "x" rather than the expected image. The image uploads to the image folder but does not display on the browser.
Create Table
upload_image.php
check_image.php
Could some1 kindly help me point out why the uploaded image shows "X" instead of the uploaded image?
Please I'm having a little bit of fuss in this code the image is displaying "x" rather than the expected image. The image uploads to the image folder but does not display on the browser.
Create Table
Code: Select all
<?php
$db = mysql_connect("localhost", "root", "") or
die ("Unable to connect. Check your connection parameters.");
mysql_select_db("moviesite", $db) or die(mysql_error($db));
//create the images table
$query = 'CREATE TABLE images (
image_id INTEGER NOT NULL AUTO_INCREMENT,
image_caption VARCHAR(255) NOT NULL,
image_username VARCHAR(255) NOT NULL,
image_filename VARCHAR(255) NOT NULL DEFAULT "",
image_date DATE NOT NULL,
PRIMARY KEY (image_id)
)
ENGINE=MyISAM';
mysql_query($query, $db) or die (mysql_error($db));
echo "Images table successfully created.";
?>
Code: Select all
<?php
$db = mysql_connect("localhost","root","") or
die ("Unable to connect. Check your connection parameters.");
mysql_select_db("moviesite", $db) or die(mysql_error($db));
?>
<!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=utf-8" />
<title>upload_image</title>
</head>
<body>
<form action="check_image.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td> Your Username </td>
<td> <input type="text" name="username"/> </td>
</tr>
<td> Upload Image* </td>
<td> <input type="file" name="uploadfile"/> </td>
</tr> <tr>
<td colspan="2">
<small> <em> * Acceptable image formats include: GIF, JPG/JPEG and PNG.
</em> </small>
</td>
</tr> <tr>
<td> Image Caption <br/>
</td>
<td> <input type="text" name="caption" /> </td>
</tr > <tr>
<td colspan="2" style="text-align: center">
<input type="submit" name="submit" value="Upload"/>
</td>
</tr>
</table>
</form>
</body>
</html>
Code: Select all
<?php
$db = mysql_connect("localhost","root","") or
die ("Unable to connect. Check your connection parameters.");
mysql_select_db("moviesite", $db) or die(mysql_error($db));
//change this path to match your images directory
$dir ="C:/xampp/htdocs/WroxPhp6.0/img";
//make sure the uploaded file transfer was successful
if ($_FILES["uploadfile"]["error"] != UPLOAD_ERR_OK) {
switch ($_FILES["uploadfile"]["error"]) {
case UPLOAD_ERR_INI_SIZE:
die("The uploaded file exceeds the upload_max_filesize directive " .
"in php.ini.");
break;
case UPLOAD_ERR_FORM_SIZE:
die("The uploaded file exceeds the MAX_FILE_SIZE directive that " .
"was specified in the HTML form.");
break;
case UPLOAD_ERR_PARTIAL:
die("The uploaded file was only partially uploaded.");
break;
case UPLOAD_ERR_NO_FILE:
die("No file was uploaded.");
break;
case UPLOAD_ERR_NO_TMP_DIR:
die("The server is missing a temporary folder.");
break;
case UPLOAD_ERR_CANT_WRITE:
die("The server failed to write the uploaded file to disk.");
break;
case UPLOAD_ERR_EXTENSION:
die("File upload stopped by extension.");
break;
}
}
//get info about the image being uploaded
$uploadfile = $_POST["uploadfile"];
$image_caption = $_POST["caption"];
$image_username = $_POST["username"];
$image_date = date("Y-m-d");
list($width, $height, $type, $attr) = getimagesize($_FILES["uploadfile"]["tmp_name"]);
// make sure the uploaded file is really a supported image
switch ($type) {
case IMAGETYPE_GIF:
$image = imagecreatefromgif($_FILES["uploadfile"]["tmp_name"]) or
die("The file you uploaded was not a supported filetype.");
$ext = ".gif";
break;
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($_FILES["uploadfile"]["tmp_name"]) or
die("The file you uploaded was not a supported filetype.");
$ext = ".jpg";
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($_FILES["uploadfile"]["tmp_name"]) or
die("The file you uploaded was not a supported filetype.");
$ext = ".png";
break;
default:
die("The file you uploaded was not a supported filetype.");
}
//insert information into image table
$query = "INSERT INTO images (image_caption, image_username, image_date)
VALUES ('$image_caption.', '$image_username', '$image_date')";
$result = mysql_query($query, $db) or die (mysql_error($db));
//retrieve the image_id that MySQL generated automatically when we inserted
//the new record
$last_id = mysql_insert_id();
//because the id is unique, we can use it as the image name as well to make
//sure we don’t overwrite another image that already exists
$imagename = $last_id.$ext;
// update the image table now that the final filename is known.
$query = "UPDATE images SET image_filename = '$imagename'
WHERE image_id = '$last_id'";
$result = mysql_query($query, $db) or die (mysql_error($db));
//save the image to its final destination
switch ($type) {
case IMAGETYPE_GIF:
imagegif($image, $dir . '/' . $imagename);
break;
case IMAGETYPE_JPEG:
imagejpeg($image, $dir . '/' . $imagename, 100);
break;
case IMAGETYPE_PNG:
imagepng($image, $dir . '/' . $imagename);
break;
}
imagedestroy($image);
?>
<!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=utf-8" />
<title>Here's your pic</title>
</head>
<body>
<h1> So how does it feel to be famous? </h1 >
<p> Here is the picture you just uploaded to our servers: </p >
<table>
<tr> <td> Image Saved as: </td> <td> <img src="img/<?php $imagename; ?>" style="float:left;"> </td> </tr>
<tr> <td> Image Type: </td> <td> <?php echo $ext; ?> </td> </tr>
<tr> <td> Height: </td> <td> <?php echo $height; ?> </td > </tr>
<tr> <td> Width: </td> <td> <?php echo $width; ?> </td > </tr>
<tr> <td> Upload Date: </td > <td > <?php echo $image_date; ?> </td > </tr>
</table>
</body>
</html>