Uploading images directly into database is not a good idea. Instead upload photos in a folder and then just insert the photo name into the database and then call it later whenever you need. You could try the following Code if you want.
To make the code work for you you have to follow these steps:
Inside the code Replace "your_photo" with your input name (which case I guess it would be "image")
Create a folder where you will be uploading images and then Make changes in->> $newname="support/images/profile/" here write your image folder name
write the proper database query. and remember that the image name will be automatically created and the name stays inside this variable-> $image_name . When you insert the name into database just use $image_name as value.
Upload Script:
<?
// If Everything is good- process the form - write the data into the database
$photo=$this->input->post('your_photo');
if($photo==NULL){$image_name='0';}// if no photo is selected the default value of the photo would be 0
//photo upload starts
$errors=0;
if($_FILES['your_photo']){
$image=$_FILES['your_photo']['name'];
if($image) {
define ("MAX_SIZE","100");
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext; }
//reads the name of the file the user submitted for uploading
$image=$_FILES['your_photo']['name'];
//if it is not empty
if ($image)
{
//get the original name of the file from the clients machine
$filename = stripslashes($_FILES['your_photo']['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
$msg="Sorry! Unknown extension. Please JPG,JPEG,PNG and GIF only ";
$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['your_photo']['tmp_name']);
//compare the size with the maxim size we defined and print error if bigger
if ($size < MAX_SIZE*1024)
{
//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="support/images/profile/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_FILES['your_photo']['tmp_name'], $newname);
if (!$copied)
{
$msg="Sorry, The Photo Upload was unsuccessfull!";
$errors=1;
}
}
else
{
$msg="You Have Exceeded The Photo Size Limit";
$errors=1;
}
}}}
/*Image upload process ends here- If any problem occurs it will display error message via the $msg,
otherwise it will upload the image to the image folder. To insert the photo into database $image_name has been used*/
}
if(($_FILES['your_photo'])&& ($errors))/* If any photo is selected and any problem occurs while uploading it will
display an error message, otherwise transfer the data to Mod_addstudent model */
{
echo $msg;
}
else {
//Insert into database.Just use this particular variable "$image_name" when you are inserting into database
$sql="INSERT INTO your_table (field1, your_image_field) VALUES ('','$image_name')";
}
?>
And then to view the image::
<?php
// Retrieve information from Database First and then ..
if (empty($your_photo))
{ $image_location="images/avatar.jpg";} //if there is no image in database
else {$image_location="images/$your_photo";} // if there is any image in database
?>
<img src="<?php echo base_url(); ?><?php echo $image_location ;?>" width="150" height="170" />