[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 existiert

    Warning: 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


Anmelden zum Antworten