0

I try to create dynamic textbox and dynamic image for that equivalent textbox value. I got my thought.while i need to upload that dynamic images from array.I write a code to upload but only last image will be uploaded.Help me friends..Here is my code

php Code:

$query = "INSERT INTO tbl_content(user_id,heading,content,content_image) VALUES ";    
for($i=0;$i<$itemCount;$i++) {  

    echo $cimage=$_FILES['image1']['name'][$i];    
    $q2=mysql_query("select max(user_id) as id from tbl_content");
    $fe=mysql_fetch_array($q2);    
    $b=$fe['id']+1;     
    if($cimage!="")
    {       
        $pos=strrpos($cimage,'.');
        $mainext=substr($cimage,($pos+1));
        $title=$b.'.'.$mainext;     

        move_uploaded_file($_FILES['image1']['tmp_name'][$i],$upload.$title);

    } else {
        $title="";
    }  

    if(!empty($_POST["name1"][$i]) || !empty($_POST["name2"][$i])) {
        $itemValues++;
        if($queryValue!="") {
            $queryValue .= ",";
        }
        $queryValue .= "('".$user_id. "', '".$_POST["name1"][$i]."', '".$_POST["name2"][$i]."', '".$cimage."')";                    
    }
}
$sql = $query.$queryValue;
$itemValues;     
if($itemValues!=0) {    
    $result = mysql_query($sql);            
    if(!empty($result)) $message = "Added Successfully.";
}

Html Code:

<DIV class="product-item float-clear" style="clear:both;">

<table cellspacing="2"> 
 <tr>
<td><DIV class="float-left"><input type="checkbox" name="item_index[]" /></DIV></td>
<td><DIV class="float-left">Heading:<input type="text" name="name1[]" style="width:60px" /></DIV></td>
<td><DIV class="float-left">Content:<textarea type="text" name="name2[]" style="width:90px"/></textarea></DIV></td>
<td>
<DIV><input name="image1[]" id="pro_image" type="file" size="45" /></Div></td>

</DIV>
</tr>
</table>
</body>

Help me friends.....

RiggsFolly
  • 93,638
  • 21
  • 103
  • 149
sabar_crb
  • 13
  • 4
  • Possible duplicate of [How to select multiple files with ?](http://stackoverflow.com/questions/1593225/how-to-select-multiple-files-with-input-type-file) – CarlosCarucce Jun 28 '16 at 12:49

2 Answers2

0

Your code not properly formatted. But can understood what is your problem. Please try below like this.

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
        // Loop $_FILES to exeicute all files
        foreach ($_FILES['image1']['name'] as $f => $name) {     

            if ($_FILES['image1']['error'][$f] == 0) {             
                if ($_FILES['image1']['size'][$f] > $max_file_size) {
                    $message[] = "$name is too large!.";
                    continue; // Skip large files
                }
                elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
                    $message[] = "$name is not a valid format";
                    continue; // Skip invalid file formats
                }
                else{ // No error found! Move uploaded files 
                    if(move_uploaded_file($_FILES["image1"]["tmp_name"][$f], $path.$name))
                    //Write insert query here. image name $_FILES["image1"]["name"][$f]
                }
            }
        }
    }
Kaja Mydeen
  • 585
  • 1
  • 7
  • 13
0

You must use multiple attribute in your input:

<input multiple="multiple" name="image1[]" id="pro_image" type="file" size="45" />

See also: https://stackoverflow.com/a/1593259/3435728

Community
  • 1
  • 1
CarlosCarucce
  • 3,420
  • 1
  • 28
  • 51
  • i would add image dynamically..so i write a code for like if i click add more button automatically it create another input file type as same name of image1..That is my problem – sabar_crb Jun 29 '16 at 03:52