[php] upload script Hilfe
-
Hey ² all,
ich habe angefangen ein einfaches Upload script für ein cms zucoden doch ich häng schon seit tagen an einem problem und komm nicht weiter.
Das ist der Wichtige Codeteil:
<form method="POST" action="upload.php?action=ready"> <input type="hidden" name="dir" value="images/bilder" /><br /> <input type="file" name="file" /><br /> <input type="text" name="name" value="test123" /><br /> <input type="submit" value="Upload" /><br /> </form> <?php $action = $_GET['action']; $dir = $_POST['dir']; $file = $_POST['file']; $file_name = $_POST['name']; $filetype = filetype($file); if( $action == ready ) { echo 'Schritt 1: Das Formular ist ausgefüllt <br />'; if(is_dir($dir)) { echo 'Schritt 2: Das Verzeichnis '.$dir.' existiert <br />'; if( copy($file,"tmp/$file") ) { echo 'Schritt 3: Die Datei $file_name konnte in das Verzeichnis '.$dir.' kopiert werden <br />'; if( move_uploaded_file($file,"'.%dir.'/$file.'.'.$filetype.'") ) { echo 'Schritt 4: Die Zieldatei wurde in das Verzeichnis '.$dir.' kopiert <br />'; } else echo 'Bitte das Script erneutstarten Fehler - Schritt 4 Move Upload - <br />'; } else echo 'Bitte das Script erneutstarten Fehler - Schritt 3 Copy - <br />'; } else echo 'Das Verzeichniss '.$dir.' existiert nicht.'; } else echo 'Bitte das Formular ausfüllen'; ?>
Dies ist die Ausgabe:
Warning: filetype() [function.filetype]: Lstat failed for test.jpg in C:\Homepage\Testzone\upload.php on line 26
Schritt 1: Das Formular ist ausgefüllt
Schritt 2: Das Verzeichnis images/bilder existiertWarning: copy(test.jpg) [function.copy]: failed to open stream: No such file or directory in C:\Homepage\Testzone\upload.php on line 34
Bitte das Script erneutstarten Fehler - Schritt 3 Copy -Irgendwie klappt aber auch kein Upload script bei mir. Habe auch schon eins aus einem Tutorial ausprobiert welches auch nicht klappt benutzte xampp
Zur Funktionsweise die ich mir wünsche:
- Bilder in den ordner images/bilder/ hochladen ohne jegliche beschrängungen.
- Bild name in eine Datenbank speichern (das sollte ich selber problemlos hinbekommen)Ich danke schonmal allen im voraus die sich mit meinem Problem befassen.
mfg:
Benedict Ernst
-
also 1. ...wenn ich sowas seh..."if( $action == ready )"...schreib mal 'ready' in anführunsgzeichen. (nich, dass es was bringen würde, aber...du weißt schon)
so...probier mal folgende änderungen:
änder mal zu probezwecken die namen wie "file" und "dir", meintwegen in "datei" und "verzeichnis" um...das bringt manchmal weniger ärger,
und muss es nich auch irgendwie $_FILES['datei']['tmp_name'] heißen...,
$filetype = filetype($file);
↓
$filetype = substr($file, strrpos($file,'.')+1);
und
move_uploaded_file($file,"'.%dir.'/$file.'.'.$filetype.'")
↓
move_uploaded_file($file,$dir.'/'.$file)
is jetzt bloß mal so mitm halben auge drauf geguckt. achja und ließ mal http://www.php.net/manual/de/features.file-upload.php dort findest du ein funktionierndes besipiel, viele kommentare und anmerkungen. und auch sicherheits-diskusionen - sollte man ja hier keinesfalls vergessen.
nacht,
lw