Jump to content

upload multiple images and store their path in database


samyathakur9@gmail.com

Recommended Posts

here is a script to upload multiple image on server folder and stor their path in database, however the path of the images are getting stored in one column only.
For example: i upload 3 images, image1.jpg, image2.jpg, image3.jpg. These images are supposed to get stored in 3 column i.e offimage1, offimage2, offimage3.
Now problem is that the path of all 3 images are getting stored under offimage1 only. the path that gets stored in offimage1 looks something like this,
uploads/image1.jpg*uploads/image1.jpgimage2.jpg*uploads/image1.jpgimage2.jpgimage3.jpg
i wish that images should get stored in this way:
uploads/image1.jpg in colum offimage1
uploads/image1.jpgimage2.jpg in colum offimage2
uploads/image1.jpgimage2.jpgimage3.jpg in colum offimage3
html form
<form enctype="multipart/form-data" action="insert_image.php?id=<?php echo $_GET['id']; ?>" method="post">        <div id="filediv"><input name="file[]" type="file" id="file"/></div><br/>        <input type="button" id="add_more" class="upload" value="Add More Files"/>        <input type="submit" value="Upload File" name="submit" id="upload" class="upload"/>    </form>

insert_image.php

<?phpob_start();require 'connection.php';if (isset($_POST['submit'])) {    $j = 0; //Variable for indexing uploaded image     $target_path = "uploads/"; //Declaring Path for uploaded images    for ($i = 0; $i < count($_FILES['file']['name']); $i++) {//loop to get individual element from the array        $validextensions = array("jpeg", "jpg", "png");  //Extensions which are allowed        $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.)         $file_extension = end($ext); //store extensions in the variable        $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image        $j = $j + 1;//increment the number of uploaded images according to the files in array             if (($_FILES["file"]["size"][$i] < 100000) //Approx. 100kb files can be uploaded.                && in_array($file_extension, $validextensions)) {            if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {//if file moved to uploads folder                //echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>';                $file_name_all.=$target_path."*";                $filepath = rtrim($file_name_all, '*');                 //echo $filepath;                $officeid = $_GET['id'];                $sql = "UPDATE register_office SET offimage='$filepath' WHERE id='$officeid' ";                            if (!mysqli_query($con,$sql))                                 {                                    die('Error: ' . mysqli_error($con));                                }            } else {//if file was not moved.                echo $j. ').<span id="error">please try again!.</span><br/><br/>';            }        } else {//if file size and file type was incorrect.            echo $j. ').<span id="error">***Invalid file Size or Type***</span><br/><br/>';        }    }    header("Location: co_request_sent.php ");}mysqli_close($con); ?>

would appreciate if someone could help me..

Link to comment
Share on other sites

The code that saves things in the database starts with this line:

$file_name_all.=$target_path."*";
That line puts each filename in one string. You can start there, instead of putting everything in the same string just keep $target_path like it is. One way to handle that would be to put the filenames in an array inside the loop, and then after the loop you update the fields in the database with the values in the array.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...