Search code examples
phpmultifile-uploader

Issue uploading multiple files of the same name


I have a multiple file upload form in PHP. My issue is when two images of the same name are uploaded the second image is replaced by the earlier one. What can I do? This is my code:

HTML

<form action="" enctype="multipart/form-data" method="post">

    <div>
        <label for='upload'>Add Attachments:</label>
        <input id='upload' name="upload[]" onChange="read_url(this)" type="file" multiple="multiple" id="imgInp" />
    </div>

    <p><input type="submit" name="submit" value="Submit"></p>

</form>

PHP CODE

if(isset($_POST['submit'])){
    if(count($_FILES['upload']['name']) > 0){
        //Loop through each file
        for($i=0; $i<count($_FILES['upload']['name']); $i++) {
          //Get the temp file path
            $tmpFilePath = $_FILES['upload']['tmp_name'][$i];

            //Make sure we have a filepath
            if($tmpFilePath != ""){

                //save the filename
                $shortname = $_FILES['upload']['name'][$i];

                //save the url and the file
                $filePath = "store/".$_FILES['upload']['name'][$i];

                //Upload the file into the temp dir
                if(move_uploaded_file($tmpFilePath, $filePath)) {

                    $files[] = $shortname;

                    $name = 'Admin';

                    $qry="INSERT INTO test(Name,Image) VALUES('$name','$filePath')";

                    mysqli_query($link,$qry) or die(mysqli_error($link));




                    //use $shortname for the filename
                    //use $filePath for the relative url to the file

                }   
            }
            echo '<p style="color:#000;">SUCCESS!!</p>';

        }
    }

Suggest me....


Solution

  • you can rename the the filename of each file. simplest way of doing it is to concat with it for example

    $filename = $_FILES['myfilename']['name'];
    $filename = time().$filename;