Jump to content

image upload to server, writing image name to mysql


ggw

Recommended Posts

Hello

 

I am having problems uploading an image through a HTML form. I want the image to be uploaded to the server and the image name to be written to the mysql database.

 

Below is the code I am using:

<?php
if (isset($_POST['add'])){
   
   echo "<br /> add value is true";
      $name = $_POST['name'];   
      $description = $_POST['description'];   
      $price = $_POST['price'];
      $category_id = $_POST['category_name'];
      $image = $_FILES['image']['name'];   
      
      //file path of the image upload
      $filepath = "../images/";
      //mew name for the image upload
      $newimagename = $name;
      //new width for the image
      $newwidth = 100;
      //new height for the image
      $newheight = 100;
      
      include('../includes/image-upload.php');
      
      
      mysql_query("INSERT INTO item (item_name, item_description, item_price, item_image)
      VALUES ('$name','$description','$price','$image')"); ?>

 

Here is the image-upload.php file code:

 

<?php

//assigns the file to the image
$image =$_FILES["image"]["name"];
$uploadedfile =$_FILES["image"]["tmp_name"];

if ($image) {
   //retrieves the extension type from image upload
   $extension = getextension($image);
   //converts extension to lowercase
   $extension = strtolower($extension);
   
   //create image from uploaded file type
   if($extension=="jpg" || $extension=="jpeg") {
      $uploadedfile = $_FILES['image']['tmp_name'];
      $src = imagecreatefromjpeg($uploadedfile);
   }else if($extension=="png") {
      $uploadedfile = $_FILES['image']['tmp_name'];
      $src = imagecreatefrompng($uploadedfile);
   }else{
      $src = imagecreatefromgif($uploadedfile);
   }
   
   //creates a list of the width and height of the image
   list($width,$height)=getimagesize($uploadedfile);
   
   //adds color to the image
   $tmp = imagecreatetruecolor($newwidth,$newheight);
   
   //create image
   imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
   
   //set file name
   $filename = $filepath.$newimagename.".".$extension;
   $imagename = $newimagename.".".$extension;
   //uploads new file with name to the chosen directory
   imagejpeg($tmp,$filename,100);
   
   //empty variables
   imagedestroy($src);
   imagedestroy($tmp);
   
}


?>

 

Any help would be appreciated, fairly new to all this!

 

Thanks!!!

Please could you give me an example of this, as I thought $uploadedfile was doing this.

 

Sorry to be a pain!

 

Thank you!!!

 

there are examples on the page that you were linked to.

In the given script, you are simply setting $uploadedfile to name of the file in the tmp directory.

This has nothing to do with actually uploading the file to your server.

I have put it back to what it was originally now, I don't know what to do, been trying for two days. I looked at other forums, websites and books. Everything I do just doesn't seem to work! My current code is :

 

<?php

//This is the directory where images will be saved 
$target = "images/"; 
$target = $target . basename( $_FILES['image']['name']); 

if (isset($_POST['add'])){

echo "<br /> add value is true";
	$name = $_POST['name'];	
	$description = $_POST['description'];	
	$price = $_POST['price'];
	$category_id = $_POST['category_name'];
	$image = ($_FILES['image']['name']); 
	move_uploaded_file($_FILES['image']['tmp_name'], $target); 	

mysql_query ("INSERT INTO item (item_name, item_description, item_price, item_image)
	VALUES ('$name','$description','$price','$image')");


	$item_id = mysql_insert_id();
	echo "item id is: " . $item_id;
	mysql_query("INSERT INTO links (item_id, category_id)
	VALUES ('$item_id', '$category_id' )");


}

?>

 

The image-upload.php is the same as the post above.

 

Thanks!

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.