2017-12-08 3 views
0

ich habe diesen code für die datenaktualisierung und ich muss den files path in response array setzen. aber mein Array ist leer:warum array_push funktioniert nicht in foreach loop

$response = array(); 
    if (file_exists($directorSerie)) { 
     if(is_array($_FILES)) {  
      foreach ($_FILES['fileToUpload']['name'] as $name => $value){ 
       if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'][$name])) { 
        $sourcePath = $_FILES['fileToUpload']['tmp_name'][$name]; 
        $targetPath = $directorSerieString.$_FILES['fileToUpload']['name'][$name]; 
        array_push($response, $targetPath);        


        if(move_uploaded_file($sourcePath,$targetPath)) { 
         $success = "success";     

        } 
       } 
      } 

     } 
    } 
exit(json_encode($response)); 
+1

Haben Sie eine Logging-Anweisung oben in jedem 'if'- und' foreach'-Block platziert, um sicherzustellen, dass sie eingegeben wird? Haben Sie versucht, '$ targetPath' zu protokollieren, um zu sehen, ob Sie das erwartet haben? – Quentin

+0

Simplier (gebräuchlicher) 'array_push' Syntax: $ response [] = $ targetPath; – JerzySBG

+0

mit $ response [] = $ targetPath; geben Sie einfach das gleiche Ergebnis: leere Array –

Antwort

-2

array_push() arbeitet auf foreach. Ich suggest du Dubub zu finden, wo ist der Fehler. Sie könnten var_dump ($ var) nach Ebene des Codes setzen, wie folgt aus:

if (file_exists($directorSerie)) { 
    var_dump($directorSerie); 

Weiter ...

if(is_array($_FILES)) { 
    var_dump($_FILES) 

Weiter

foreach ($_FILES['fileToUpload']['name'] as $name => $value){ 
    var_dump($name ,$value); 

, bis Sie entdecken ..

+2

ein Kommentar würdige Beobachtung, keine Antwort Material. – YvesLeBorg

+0

danke für deine antwort. Der Code funktioniert, die Datei wird hochgeladen, wie es sollte, nur in der Konsole bekomme ich ein leeres Array –