Ich versuche ein PHP-Skript zu schreiben, das mehrere Dateien hochladen kann.Hochladen des Bildes funktioniert nicht
for($i=0;$i<count($_FILES['uploadimg']['name']);$i++){
$name = $_FILES['uploadimg']['name'][$i];
$type = $_FILES['uploadimg']['type'][$i];
$filepath = $_FILES['uploadimg']['tmp_name'][$i];
$size = getimagesize($filepath);
$img = file_get_contents($filepath);
//insert into database
}
Das Problem ist, dass die Variablen nicht die Art und Weise aufgefüllt werden, sie sollten.
Wenn ich ein jpeg „image.jpg“ laden, habe ich entdeckt, dass die Variablen folgende Werte haben: (von Datenbank-Code mit echo
s ersetzt und var_export
s)
$name = 'image.jpg'; // good
$type = ''; // not good
$filepath = ''; // not good
$size = false; // not good
$img = false; // not good
ich, dass ich beachten sollte realisieren $size
und $img
sind abhängig von $filepath
ein gültiger Dateipfad.
Könnte jemand Einblick geben, was falsch läuft oder was mir fehlt? Ich habe jetzt einen Tag lang mit dem Code herumgespielt und kann mir keine Lösung ausdenken.
Update:
print_r($_FILES)
auf 3 Bilder liefert:
Array (
[uploadimg] => Array (
[name] => Array (
[0] => test1.jpg
[1] => test2.jpg
[2] => test3.jpg
)
[type] => Array (
[0] => image/jpeg
[1] =>
[2] => image/jpeg
)
[tmp_name] => Array (
[0] => /tmp/phpkC6f2F
[1] =>
[2] => /tmp/phpgFrPl8
)
[error] => Array (
[0] => 0
[1] => 1
[2] => 0
)
[size] => Array (
[0] => 238906
[1] => 0
[2] => 237308
)
)
)
Kann ich dann davon ausgehen, das bedeutet, dass das Bild zu groß ist?
Danke, das erklärt eine Menge, vor allem in Verbindung mit Ross 'Vorschlag, einen Dump zu machen, und es sind Ergebnisse, die ich jetzt gepostet habe. –