kostenloser Webspace werbefrei: lima-city


PHP Multiupload funktioniert nicht

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hallo,

    ich habe ein Script, mit dem ich mehrere Bilder auf meinen Server hochladen kann.

    Ein Ordnername wird übergeben, wo die Bilder rein gespeichert werden sollen.

    Der Code:

    <form action="?page=bilderupload" method="post"
    	enctype="multipart/form-data"><input name="uploads[]" type="file"
    	multiple><br />
    <br />
    <b>Ordnername:</b> <input type="input" name="name" id="name"><br />
    <br />
    <input type="submit" value="Dateien hochladen" name="submit"></form>
    
    <?php
    
    if ($_POST ['submit']=='Dateien hochladen') {
    
    	if($_POST['name'] == "") {
    		echo 'Bitte gib einen Ordnernamen an!';
    		$fehler = true;
    	}
    	
    	if (!$fehler) {
    	
    // Erlaubte Dateiendungen  
    $allowedExtensions = array('png', 'jpg', 'jpeg', 'JPG');  
    // Maximale Größe der Datei  
    $maxSize = 2097152;  
    // Hilfsvariable für Array Index  
    $i = 0;  
    foreach($_FILES as $file) :  
        foreach($file['name'] as $filename) :  
            $extension = getExtension($filename);
            
            if(!in_array($extension, $allowedExtensions)) {  
                echo 'Keine erlaubte Endung: ', $filename;  
                ++$i;  
                // Datei überspringen falls Endung nicht erlaubt  
                continue;  
            }
              
            if($file['size'][$i] > $maxSize) {  
                echo 'Datei zu groß';  
                ++$i;  
                continue;             
            }
            
            // Eindeutiger Dateiname  
            $save_as_name = uniqid().'_'.$filename;  
            //Ordnername
            $ordnername = $_POST['name'];
            // Datei auf Server speichern  
            move_uploaded_file($file['tmp_name'][$i], "$ordnername/$save_as_name");    
          
            ++$i;  
        endforeach;  
    endforeach;  
    	
    	echo '<b><center>Erfolg!</center></b>';
    
    	}
    	
    	}
    	
    	function getExtension($name)   
    {   
      return (false === ( $p = strrpos($name, '.') ) ? '' : substr($name, ++$p));  
    }  
    
    ?>


    Der Code funktioniert aber irgendwie noch nicht.
    Laut Fehlermeldung ist in der Zeile, wo die Funktion move_uploaded_file() aufgerufen wird, ein Fehler.

    Da finde ich aber keinen Fehler. Das Verzeichnis $ordnername existiert.

    Die Fehlermeldungen:

    Warning: move_uploaded_file(ordner/50661502e2953_DSC09886.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/www/html/upload.php on line 52
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/home/www/phptmp/phpM4FmQE' to 'ordner/50661502e2953_DSC09886.JPG' in /home/www/html/upload.php on line 52


    Könnt Ihr mir helfen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. davy schrieb:
    . Das Verzeichnis $ordnername existiert.

    Die Fehlermeldung besagt etwas anderes.

    Es mag sein, daß Du einen entsprechenden Ordner angelegt hast. Liegt der aber auch, bezogen auf den Speicherort des Skriptes, an der richtigen Stelle und ist beschreibbar?

    $ordnername="ordner" -> der ordner wird im gleichen Verzeichnis, wie das uploadskript gesucht
    $ordnername="/ordner" -> der Ordner wird im document-root.gesucht

    EDIT: Fehlerhafte Schreibrechte sind auszuschließen, denn dann wäre die erste Meldung ein "permission denied".


    Priinzipiell ist das Uploadscript weder schön, noch übersichtlich, aber zumindest frei von schwerwiegenden (!) Fehlern.
    Gerade per Copy>Paste erfolgreich getestet.
    .
    Entspricht dein Codeschnipsel wirklich genau dem ausgeführten Script? Ich vermag es nicht zu glauben, denn dann wäre das action='?page=bilderupload'" absolut sinnlos und das Formular würde unbenötigterdings auch wieder gezeigt..


    Beitrag zuletzt geändert: 29.9.2012 0:53:10 von fatfreddy
  4. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    fatfreddy schrieb:
    davy schrieb:
    . Das Verzeichnis $ordnername existiert.

    Die Fehlermeldung besagt etwas anderes.

    Es mag sein, daß Du einen entsprechenden Ordner angelegt hast. Liegt der aber auch, bezogen auf den Speicherort des Skriptes, an der richtigen Stelle und ist beschreibbar?

    $ordnername="ordner" -> der ordner wird im gleichen Verzeichnis, wie das uploadskript gesucht
    $ordnername="/ordner" -> der Ordner wird im document-root.gesucht

    EDIT: Fehlerhafte Schreibrechte sind auszuschließen, denn dann wäre die erste Meldung ein "permission denied".


    Priinzipiell ist das Uploadscript weder schön, noch übersichtlich, aber zumindest frei von schwerwiegenden (!) Fehlern.
    Gerade per Copy>Paste erfolgreich getestet.
    .
    Entspricht dein Codeschnipsel wirklich genau dem ausgeführten Script? Ich vermag es nicht zu glauben, denn dann wäre das action='?page=bilderupload'" absolut sinnlos und das Formular würde unbenötigterdings auch wieder gezeigt..


    Danke für deine Antwort !

    Der $ordnername liegt an der richtigen Stelle, also in dem Ordner, wo auch das Uploadskript liegt.

    Ich finde das Skript auch nicht so schön, hast du ein besseres für mich?

    Die Action = '?page=bilderupload' verweist auf das Upload Formular. In der selben Datei befindet sich auch der PHP Code für den Upload.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!