shade
26. September 2008 um 08:12
1
Hallo. Ich hab mir ein Uploadformular erstellt, nur irgendwie läd er nichts hoch!? Es kommt immer die Meldung, das ich das Upload Formular benutzen solle. Kann mir jemand sagen warum…
thx
formular.html
[HTML]
[/HTML]
upload.php
[PHP]<?php
// Variabeln festlegen
$max_byte_size = 10240000;
$allowed_types = „(zip|raw|pdf|doc|txt)“;
// Formular wurde abgeschickt
if(isset($_POST[„Uploaden“])) {
// Wurde wirklich eine Datei hochgeladen?
if(is_uploaded_file($_FILES[„file“][„tmp_name“])) {
// Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
if(preg_match(„/.“ . $allowed_types . „$/i“, $_FILES[„file“][„name“])) {
// Datei auch nicht zu groß
if($_FILES[„file“][„size“] <= $max_byte_size) {
// Alles OK → Datei kopieren
if(copy($_FILES[„file“][„tmp_name“],‚./uploads/‘. $_FILES[„file“][„name“])) {
echo „Datei erfolgreich hochgeladen! “;
echo "Name: " . $_FILES[„file“][„name“] . „ “;
echo „Größe: " . $_FILES[„file“][„size“] . " Byte “;
echo "MIME-Type: " . $_FILES[„file“][„type“] . „ “;
echo „Link: <a href="/uploads/“ . $_FILES[„file“][„name“] . „">“ . $_FILES[„file“][„name“] . „“;
}
else {echo „Datei konnte nicht hochgeladen werden.“;}
}
else {echo „Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen.“;}
}
else {echo „Die Datei besitzt keine ungültige Endung.“;}
}
else {echo „Keine Datei zum Hochladen angegeben.“;}
}
else {echo „Bitte benutzen Sie das Upload Formular.“;}
?> [/PHP]
thuemmy
26. September 2008 um 08:21
2
Mit [php]if(isset($_POST[„Uploaden“]))[/php]fragst Du ab, ob eine Variable gesetzt ist, aber Uploaden ist der Inhalt der Variable.
Mit [php]if(isset($_POST[„submit“]))[/php]sollte es gehen.
Gruß thuemmy
shade
26. September 2008 um 08:24
3
Danke. Jetzt kommt die Meldung, Keine Datei zum Hochladen angegeben.
thuemmy
26. September 2008 um 08:33
4
Na, immerhin sind wir schon einen Schritt weiter
Lass Dir mal die Variable $_FILES ausgeben, und zwar direkt nachdem Du festgestellt hast, dass der Submit-Button gedrückt wurde.
Gruß thuemmy
shade
26. September 2008 um 08:45
5
Da steht „Array“ drinne :?:
thuemmy
26. September 2008 um 08:49
6
Ne, steht da nicht wirklich drinne
Lass Dir das Array mal so ausgeben:
[php]print_r($_FILES);[/php]
Gruß thuemmy
shade
26. September 2008 um 08:53
7
Ah danke.
[PHP]Array ( [userfile] => Array ( [name] => link.txt [type] => text/plain [tmp_name] => /var/tmp/phpX8aaVU [error] => 0 [size] => 32 ) )[/PHP]
thuemmy
26. September 2008 um 09:02
8
Also hochgeladen ist die Datei. Muss bei is_uploaded_file() nicht der Original-Dateiname übergeben werden?
Gruß thuemmy
shade
26. September 2008 um 09:19
9
[PHP]Original-Dateiname übergeben[/PHP]
Mach ich doch mit [file] oder nicht!?
[PHP]Also hochgeladen ist die Datei[/PHP]
Meinst du in das temp Verzeichniss!?
thuemmy
26. September 2008 um 09:25
10
Meiner Meinung nach sollte das so heißen:[php]if(is_uploaded_file($_FILES[„file“][„name“])) [/php]Gruß thuemmy
shade
26. September 2008 um 11:53
11
Habs mal so ausprobiert. Klappt leider auch nicht.