2017-12-22 5 views
0

Wenn ich eine einzelne Datei oder mehrere Dateien auswählen, ist das Ergebnis das gleiche. Ich erwarte, dass dieser Code mehrere Dateien hochlädt. Aber das Array ist leer. Ich habe mehrere Beiträge von anderen gelesen und die Antworten auf diese Fragen scheinen hier nicht zu gelten. Wenn ich alle Formulareingaben außer der versteckten Eingabe mit dem Namen 'action' eliminiere, funktionieren die Uploads gut. HierPHP: Hochladen mehrerer Dateien: Hinweis: Undefinierter Index: Datei in Bulletin.php

ist die relvant HTML-Formular:

<form action="bulletin.php" method="post" enctype="multipart/form-data"> 
<input class="form-control" id="message_subject" name="message_subject" type="text"/> 
<textarea class="form-control" cols="40" id="message_body" name="message_body" rows="10"></textarea> 
<input type="file" id="file" name="file[]" multiple accept="image/*"/> 
<input type="hidden" name="action" value="submit_new"> 
<button class="btn btn-primary " name="submit" type="submit">Submit</button> 
</form> 

Hier ist die PHP:

print_r($_FILES);  
if(isset($_POST['action'])){ 

// Count total files 
$countfiles = count($_FILES['file']['name']); 

// Looping all files 
for($i=0;$i<$countfiles;$i++){ 
$filename = date('Y-m-d-H-i-s') . $_FILES['file']['name'][$i]; 

// Upload file 
move_uploaded_file($_FILES['file']['tmp_name'][$i],'user-images/'.$filename); 

} 
} 

Hier ist die Ausgabe:

Array()

Notice: Undefined index : Datei in /var/www/html/secure/bulletin.php auf Linie 66

Warum ist das Array leer, wenn andere Eingaben im Formular enthalten sind?

+0

Würden Sie bitte die Zeile _66_ kommentieren. – andrewnagyeb

+0

Überprüfen Sie durch die Schritte in dieser Antwort https://StackOverflow.com/a/3587158/689579 – Sean

+0

Bitte zeigen Sie uns Linie 66 – zstate

Antwort

0

Also, in meinem Fall gibt es mehrere Formulare auf dieser PHP-Seite, aber nicht angezeigt, es sei denn, die if-Anweisung ist wahr. Ich stolperte über einen Post im Internet, der vorschlug, dass jedes Formular auf einer Seite den enctype = "multipart/form-data" enthalten sollte. Also ging ich durch und fügte es jedem Formular in der PHP-Datei hinzu und dadurch wurde das mysteriöse Problem behoben. Nicht sicher, warum nicht verwandte Formular-Tags dies verursachen würden.

Verwandte Themen