$_FILES : ["tmp_name"] ist leer
Kleiner Wischmob
- php
Hallo zusammen,
habe aktuell ein paar Probleme mit einem php-script, genaugenommen zwei.
und der Herr google weiß zwar viel über $_FILES aber zu meinem Problem konnte der mir auch nciht konkret weiterhelfen.
ich habe die Datei galprep.php mit folgendem php code:
<form enctype="multipart/form-data" action="galupload.php" method="post">
<input type ="hidden" name="MAX_FILE_SIZE" value="5000" />
Bitte geben Sie einen neuen Verzeichnisnamen an:<input type="text" size="50" name="verzeichnisname" /><br />
<?php
echo "<input type =\"hidden\" name=\"verzeichnis\" value=\"$verzeichnis\"/><br />\n";
for($i =1; $i<11; $i++)
{
echo "Bitte geben Sie den ". $i . ". Dateinamen an:<input type=\"file\" name=\"datei$i\" /><br />\n";
}
?>
das was ich mit diesem Forrmular absende, möchte ich mit dem script galupload.php auf den Server hochladen, das versuche ich zumindest so:
<?php
$verzeichnis = $_POST["verzeichnis"] . "/" . $_POST["verzeichnisname"];
if(!is_dir("../$verzeichnis"))
{
mkdir("../$verzeichnis", 0777);
for($i=1; $i<11;$i++)
{
stripslashes("datei$i");
$blöd = ($_FILES["datei$i"]["tmp_name"]);
if ((!isset($_FILES["datei$i"])) || ($_FILES["datei$i"]["tmp_name"] == ""))
{echo "keine oder eine zu große Datei ausgewählt. - $blöd <br />\n";}
else
{if (copy ($_FILES["datei$i"]["tmp_name"], ".." . "/$verzeichnis/".$_FILES["datei$i"]["name"]))
echo "Die Datei " . $_FILES["datei$i"]["name$i"] . " wurde zum Server übertragen.<br />\n";
else
{
echo "Speichern der Datei ". $_FILES["datei$i"]["name"] . " fehlgeschlagen.<br />\n";
echo "Möglicher Grund: Fehlende Schreibberechtigung auf dem Server.<br>\n";
}
}
}
}
else
{
echo "Das Verzeichnis <strong>$verzeichnis</strong> konnte nicht erstellt werden!";
}
?>
leider geht es aber nicht. Das verzeichnis, sofern noch nicht vorhanden,
wird erstellt, aber leider werden keine dateien transportiert.
Soweit ich das Problem lokalisieren konnte liegt das daran, dass ($_FILES["datei$i"]["tmp_name"]) immer leer ist.
Kann mir jemand erklären, warum das so ist, ich habe schon alles mögliche probiert.
Schonmal vielen Dank im Vorraus
mfg Wischmob
Hallo,
Kleiner Tipp
mfg, Flo
Vielen Dank Flo, für den Tipp :-)
Das sieht mal sehr perfekt aus, wenn Du mir jetzt noch sagen könntest wo der
Fehler in meinem Script liegt, damit ich dabei auch was lernen kann,
bist du mein ganz persönlicher Held ;-)
Gruß Wischmob
Hallo,
Vielen Dank Flo, für den Tipp :-)
Das sieht mal sehr perfekt aus, wenn Du mir jetzt noch sagen könntest wo der
Fehler in meinem Script liegt, damit ich dabei auch was lernen kann,
bist du mein ganz persönlicher Held ;-)
Wurde dir doch schon gesagt: Error=2 => Datei zu groß
In Selfphp steht dazu folgendes:
UPLOAD_ERR_FORM_SIZE 2 Die hochgeladene Datei überschreitet die in dem HTML-Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.
mfg, Flo
Hmm... das tut jetzt echt weh.
Danke für 's "mit der Nase drauf stoßen", mein Held ;-)
gruß, Wischmob
Hi,
leider geht es aber nicht. Das verzeichnis, sofern noch nicht vorhanden,
wird erstellt, aber leider werden keine dateien transportiert.
Soweit ich das Problem lokalisieren konnte liegt das daran, dass ($_FILES["datei$i"]["tmp_name"]) immer leer ist.
print_r($_FILES); ergab was?
Und die Benennung deiner Upload-Felder mit Indexnummer im Namen, und dann das herumgehampel mit $_FILES["datei$i"] finde ich aeusserst ungeschickt (und das nicht nur auf Grund der Art, wie du die laufende Nummer in den String einbindest).
http://www.php.net/manual/en/features.file-upload.multiple.php waere besser.
MfG ChrisB
print_r($_FILES); ergab was?
das bringt mir : Array ( [datei] => Array ( [name] => Kopievon8.png [type] => [tmp_name] => [error] => 2 [size] => 0 ) )
Und die Benennung deiner Upload-Felder mit Indexnummer im Namen, und dann das herumgehampel mit $_FILES["datei$i"] finde ich aeusserst ungeschickt (und das nicht nur auf Grund der Art, wie du die laufende Nummer in den String einbindest).
naja, bin ja auch noch ein ganz frischer Anfänger der sich grade durch sein
"PHP Einsteigerseminar" druchkämpft :-)
http://www.php.net/manual/en/features.file-upload.multiple.php waere besser.
danke, das werde ich dann heute abend mal als Exkurs durchlesen.
Aber mich würde der Fehler in meinem Script trotzdem interessieren.
Gruß Wischmob
Hi,
print_r($_FILES); ergab was?
(Solche Kontrollausgaben solltest du in <pre> einpacken, oder in den Seitenquelltext schauen, damit das ganze etwas lesbarer ist.)
das bringt mir : Array ( [datei] => Array ( [name] => Kopievon8.png [type] => [tmp_name] => [error] => 2 [size] => 0 ) )
Und dass da bei error was drin steht, laesst dich nicht stutzig werden, und von selbst noch mal im Manual bzgl. moeglicher Fehler nachlesen ...?
MfG ChrisB
Und dass da bei error was drin steht, laesst dich nicht stutzig werden,
und von selbst noch mal im Manual bzgl. moeglicher Fehler nachlesen ...?
doch... seit dem ich weiß dass da error drinsteht bin ich schon am suchen.
Aber vorher hatte ich den inhalt nur über ($_FILES["datei"]["tmp_name"])
ausgegeben. Und da stand nichts von einem Error drin.
Aber das hilft mir auf jedenfall schonmal weiter :-)