Wo steckt in diesem Upload-Script der Fehler?



  • <?php

    function list_dir(dirname) { if(dirname[strlen(dirname)-1]!='/') dirname.='/';
    static resultarray=array();result_array = array(); handle=opendir(dirname);while(dirname); while (file = readdir(handle)) { if(file=='.'||file==..)continue;if(isdir(file=='..') continue; if(is_dir(dirname.file))continue;//listdir(file)) continue; //list_dir(dirname.file./);elsefile.'/'); else result_array[]=dirname.dirname.file;
    }

    closedir($handle);
    return $result_array;
    }

    files=list_dir("pictures/".files = list\_dir("pictures/".user->username."_pics/".$apa->name."/");

    if(_POST['uploadpics']) { if(count(files) >= 4)
    {
    echo "Ihr max. Uploadvolumen wurde erreicht. Sie können keine Bilder mehr uploaden.";
    }
    else if(count(files) < 4) { for(i = 1; i<=count(i <= count(_FILES); i++) { pic = "picture".i;i; tempname = \_FILES[pic]['tmp_name'];
    $name = _FILES[pic]['name'];
    $type = _FILES[pic]['type'];
    $size = _FILES[pic]['size'];

    if($type != "image/gif" && type != "image/pjpeg") { err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
    }

    if(size > "15000") { err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!";
    }

    If(empty(err)) { copy(tempname, "pictures/".user>username."pics/".user->username."_pics/".apa->name."/".$name);

    }
    else
    {
    foreach($err as error)echo"error) echo "error<br>";
    }
    }
    }
    }

    Es wird zwar immer angegeben der Upload sei erfolgreich, aber die Bilder sind nicht vorhanden? Müssen die Rechte des Ordners, in welchen ich die Bilder kopieren möchte auf 777 gesetzt sein oder reicht 755 auch aus?
    Ich danke euch für eure Hilfe!
    MfG

    Tobsen



  • Schreibrechte Öffentlich müßte reichen... 755 (Glaube das war der Code, weiß net genau)



  • Das ist ka krausam. Wenn du keinen Code Tag verwendest hilft dir keiner.



  • Original erstellt von <Gast>:
    Das ist ka krausam. Wenn du keinen Code Tag verwendest hilft dir keiner.

    Erstens das und zweites, gib uns bitte mal den ganzen Quelltext, wie ich gesehen habe, ist die Value apagarnichtdefiniert,alsofehltetwas,undmitdemBefehl:copy(apa gar nicht definiert, also fehlt etwas, und mit dem Befehl: copy(tempname, "pictures/".user>username."pics/".user->username."_pics/".apa->name."/".$name);
    ist es klar, dass er nichts kopiert, da der pfad dann so aussehen würde, wenn $apa leer ist:

    pictures/username//name

    das ist kein gültiger pfad, also weiß apache nicht wohin damit, oder was verwendet dein server?



  • Vielleicht hilft dir ein kleiner auszug aus meiner Exchange weiter:

    $upfile_name = strtolower($upfile_name);
    $filepath = $DOCUMENT_ROOT."/downloads/";
    $MAX_FILE_SIZE = 2097152;
    $des_file= strtolower($filepath.$_FILES['upfile']);
      if (!file_exists($des_file)) {
        if(ereg("(\.jpg)|(\.jpeg)|(\.gif)|(\.png)|(\.3ds)|(\.obj)|$", $des_file)) {
    
        if (move_uploaded_file($upfile, $des_file)) {
    
        echo "<font color=green>Datei gespeichert</font>";
      } else {
        echo "<font color=red><B>Upload fehlgeschlagen!</font></B><BR>";
        echo "Dies kann folgende Gründe haben:";
        echo "<hr>";
        echo "1. Dateifehler<br>";
        echo "2. Dateilimite zu gross<br>";
        echo "3. Skriptfehler<br>";
        echo "4. Unerlaubte Zeichen im Dateinamen<br>";
        echo "<hr>";
        echo "<a href=\"exchange.php\">Zurück...</a>";
        exit;
      }
     } else {
       echo "<b><font color=\"red\">Diese Art von Datei ist nicht erlaubt!! Transaktion abgebrochen!</font></b><hr>";
    echo "<br><b>[Erlaubte Dateitypen]</b><hr>";
    echo ".jpg, ";
    echo ".jpeg, ";
    echo ".gif, ";
    echo ".png, ";
    echo ".3ds, ";
    echo ".obj, ";
    echo "<hr>";
    echo "Der Webmaster übernimmt auf allfällige Fehler, Systemabstürze, Viren oder sonstige Schäden,<br>die durch Programme der DataExchange enstehen könnten, <b>keine Haftung!</B>";
    echo "<hr>";
    echo"<a href=\"exchange.php\">Zurück...</a>";
        exit;
     }
    }
    }
    }
    

Anmelden zum Antworten