Webstatt.org - Community seit 2006 - 2012 (2024?)

Datei Upload

user-137
06.09.2007 11:43

Hallo,

ich hab ein ganz einfaches Problem aber ohne Fehlermeldung, folgender Code:
Ich wähle eine Datei aus klicke auf Upload und es passiert nur das false ausgegeben wird und somit meine Fehlermeldung. (Bei neue Datei hochladen)
Ich hatte noch nie mit Uploads zutun und weis nicht was falsch ist.

<form enctype="multipart/form-data" action="index.php" method="post">
Passwort: <input name="pass" type="text" size="30"><br />
Datei: <input name="file" type="file"><br />
<input name="send" type="submit" value="Upload">
</form>

<?

//Nur ausführen wenn Formular abgesendet wurde
if (isset($_POST['send'])) {

//Nur Ausführen falls Passwort richtig
if ($_POST['pass'] == ""zwinkern { //Passwort

//Alte Datei mit dem selben Namen Löschen
if (is_file($_POST['file'])) {

if (unlink($_POST['file']) == true) { echo "Alte Datei wurde gelöscht!"; }
else { echo "Fehler beim Löschen der alten Datei"; }

}

//Neue Datei hochladen
if (copy ($_POST['file'],"./".$_POST['file'].""zwinkern == true) { echo "Neue Datei wurde hochgeladen"; }
else { echo "Fehler, beim uploaden"; }

}

//Wenn Passwort falsch
else {
echo "Falsches Passwort oder Datei wurd nicht angegeben!";
}

}

?>


Mfg. BNS

Avatar user-162
06.09.2007 12:05

Nim move_uploaded_file für die Verarbeitung und ausserdem sind die Pfade falsch!
Lies die Anleitung von php.net dort steht ein einfaches Beispiel dazu.

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
user-137
06.09.2007 13:45

thx.

user-152
07.09.2007 10:56

> $_POST['file']

Dafür gibt es $_FILES, womit auch auch eine bessere Überprüfung machen kannst.
Zum Testen kannst du mal print_r($_FILES) einfügen.

Avatar user-194
08.09.2007 15:46

Der vom Client gelieferte Dateiname ist nicht vertrauenswürdig. Deswegen auf keinen Fall unlink/copy direkt darauf anwenden.