2016-06-13 26 views
0

Ich versuche, mehrere Bilder in die Datenbank einzufügen. Beim Senden bekomme ich nur ein Bild in $ _FILES []. Warum werden die anderen übermittelten Bilder nicht im Array angezeigt?Mehrere Bilder hochladen Problem

Auch upload.php hat sagen Fehler Array String-Konvertierung in C: \ xampp \ htdocs \ kabootar \ upload.php auf der Linie 15, die

ist
$targetFile = $targetDir.$fileName; 

Wie kann ich diese Probleme zu lösen?

html

<form action="upload.php" method="post" enctype="multipart/form-data"> 
     <input type="submit" value="Upload" name="upload"> 

     <label class="add">Select more..</label> 
     <div class="prep"> 

     <div class="col-md-4"> 
      <img src="http://png-4.findicons.com/files/icons/129/soft_scraps/256/button_upload_01.png" id="upfile1" style="cursor:pointer" class="img" /> 
    <input type="file" class="inputimg" name="multiple_uploaded_files[]" /> 
     </div> 


     </div> 

    </form> 

Javascript

<script type="text/javascript"> 
$(document).on("click", ".img", function() { 

    $(this).closest("div").find(".inputimg").trigger("click"); 
}); 

var count = 1; 
$(".add").on("click", function() { 
    count++; 
    if(count <= 5){ 
     var row = '<div class="col-md-4"> <img src="http://png-4.findicons.com/files/icons/129/soft_scraps/256/button_upload_01.png" id="upfile1" style="cursor:pointer" class="img"/ ><input type="file" class="inputimg" />\n\ 
     '; 
    $(".prep").append(row); 

    $(".inputimg").change(function() { 
     console.log(this); 
     readURL(this); 
    }); 
    }else{ 
     alert('You are only allowed to add uptp 5 images'); 
    } 


}); 
$(".inputimg").change(function() { 
    readURL(this); 
}); 

function readURL(input) { 
    if (input.files && input.files[0]) { 
     var reader = new FileReader(); 

     reader.onload = function (e) { 
      $(input).siblings('.img').attr('src', e.target.result); 
     } 

     reader.readAsDataURL(input.files[0]); 
    } 
} 
</script> 

upload.php

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

if(!empty($_FILES)){ 

    foreach ($_FILES['multiple_uploaded_files']['name'] as $file) 
{ 
    $targetDir = "upload/"; 
    $fileName = $_FILES['multiple_uploaded_files']['name']; 
    $targetFile = $targetDir.$fileName; 
     //use the move_uploaded_file() to move your file on your server directory. 
if(move_uploaded_file($_FILES['multiple_uploaded_files']['tmp_name'][$file], $targetFile)) 
{ 
     //insert file information into db table 
$sql = mysqli_query($link,"INSERT INTO files (file_name, uploaded) VALUES('".$fileName."','".date("Y-m-d H:i:s")."')"); 
echo 'file inserted'; 
} 
    else 
    { 
     echo 'Query not working'; 
    } 

} 
     //fire an insert query that inserts all the file names with comma separated value 
    } 
else 
{ 
    echo 'No file selected'; 
} 
+0

können Sie den var_dump ($ _ FILES) drucken/anzeigen; –

+0

@RavinderReddy Nach dem Senden von zwei Dateien ist die Ausgabe array (1) {["multiple_uploaded_files"] => array (5) {["name"] => array (1) {[0] => string (10) "Winter.jpg"} ["Typ"] => array (1) {[0] => Zeichenkette (10) "image/jpeg"} ["tmp_name"] => array (1) {[0] = > Zeichenfolge (22) "C: \ xampp \ tmp \ phpE0.tmp"} ["Fehler"] => Array (1) {[0] => int (0)} ["Größe"] => Array (1) {[0] => int (105542)}}} –

+0

'$ _FILES ['multiple_uploaded_files'] ['name']' ist ein Array! – Rayon

Antwort

1

Sie versuchen String mit Array $ _FILES [ 'multiple_uploaded_files'] [ 'name'] verketten . Für Array String Konvertierungsfehler

den Code

$fileName = $_FILES['multiple_uploaded_files']['name']; 

mit

$fileName = $file; (or) 
$fileName = $_FILES['multiple_uploaded_files']['name'][0]; 

Einzel Datei-Upload-Ausgabe ersetzen. Sie haben kein name-Attribut für das Eingabe-Tag in JavaScript-Code hinzugefügt. mit dem Eingang Tag hinzugefügt Attributnamen:

var row = '<div class="col-md-4"> <img src="http://png-4.findicons.com/files/icons/129/soft_scraps/256/button_upload_01.png" id="upfile1" style="cursor:pointer" class="img"/ ><input type="file" class="inputimg" />\n\'; 

Mit

var row = '<div class="col-md-4"> <img src="http://png-4.findicons.com/files/icons/129/soft_scraps/256/button_upload_01.png" id="upfile1" style="cursor:pointer" class="img"/ ><input type="file" class="inputimg" name="multiple_uploaded_files[]"/>\n\'; 

Hinweis ersetzen.

+0

Sie müssen den PHP-Code entsprechend ändern. print/zeige den var_dump ($ _ FILES); Nach dem Ändern von Javascript. –

+0

Keine Notwendigkeit für eine weitere Abfrage. Sie müssen die richtige Schleife machen. kannst du es ausdrucken/anzeigen var_dump ($ _ FILES); –

+0

können Sie den var_dump ($ _ FILES) drucken/anzeigen; –