PHP $_FILES mehrere Datei-Upload problem
Ich habe ein kleines problem mit dem hochladen von mehreren Dateien in PHP ,
habe ich diese html-Formular:
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="myfile[]" />
<input type="submit" />
</form>
- und dies ist die upload.php :
<?php print_r( $_FILES ); ?>
wenn ich sende eine Datei, die es mir zeigen das:
Array
(
[myfile] => Array
(
[name] => Array
(
[0] => Krw_Qe4QKmI.mp3
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 1
)
[size] => Array
(
[0] => 0
)
)
)
so weit so gut.
das problem beginnt, wenn ich mein Formular dieser :
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="myfile[]" />
<input type="file" name="myfile[]" />
<input type="submit" />
</form>
nun , wenn ich 2 Dateien , es zeigt mir das :
Array
(
)
so , was ist hier das problem?
danke , Mor.
- Sie haben einen Fehler in dem ersten array, das Sie zeigen (mit dem code
1
). Sehen Sie hier, was es heißt: php.net/manual/en/features.file-upload.errors.php
Du musst angemeldet sein, um einen Kommentar abzugeben.
Viele Vorschläge hier. Ich gebe es zu gehen. Dies basiert auf der @Pekka 's Kommentar.
Ich sehe, Sie sind Tests mit mp3s, die voraussichtlich über PHP-upload-limit. Dies ist, weil in deinem ersten Beispiel, Sie haben tatsächlich ein upload-Fehler-code 1:
The uploaded file exceeds the upload_max_filesize directive in php.ini.
. So auch Ihre Faust hochladen hat nicht funktioniert. Einen erfolgreichen upload hat immer 0 als Fehlercode.Ändern Sie in php.ini mit
upload_max_filesize = 10M
(oder20M
oder300M
; vorsichtigM
- was bedeutet MB - wie weggelassen, bringt eine Menge Kopfschmerzen.Schlage ich vor, die Tests mit kleineren Dateien, wie ich sehe, haben Sie ein limit von 2M für den Upload.
"Weiter Lesen.
Ich würde Wetten, dass Sie überschritten
post_max_size
und PHP einfach ignoriert die hochgeladenen Dateien.Es ist 8MB standardmäßig. Wenn Sie versuchen, uploaden einer 5MB-Datei funktioniert alles. Wenn Sie versuchen, uploaden 2 5 MB-Dateien, es exceeeds 8MB und PHP ignoriert gebuchten Daten.
Erhöhen Sie den Wert von post_max_size in der php.ini.
Überprüfen Sie Ihre
max_file_uploads
Einstellung -- ist es mehr als 1?Php.ini-Datei muss in etwa so Aussehen:
Ändern Sie die Werte der
upload_max_filesize
und dann den server neu startenMehrere Dateien auf einmal, versuchen Sie geben einen index wie hier:
Ich hatte das gleiche problem.. Alle meine Bemühungen waren vergeblich, aber schließlich fand ich einen ziemlich guten Hinweis auf das PHP-Handbuch. Es ist einfach, aber für mich perfekt...
Folgen Sie diesem link für den vollständigen Hinweis, es gibt eine Funktion zum anordnen der mehreren upload-Datei-array in einer einfach zu bedienenden Art und Weise.
http://php.net/manual/en/features.file-upload.multiple.php
Das Problem ist, Ihr
name="myfile[]"
- Attribut auf Ihre input-Element.You cant referer später in die PHP-Datei, wenn Sie noch nicht eine Kennung für Sie. Die PHP-Dokumentation gibt dir den selben Tipp:
http://www.php.net/manual/en/features.file-upload.multiple.php
So ändern Sie den Namen zu "myfile1" und "myfile2" (oder ein besserer name ;)) sollte dein problem lösen.
name[]
.