move_uploaded_file() arbeitet nicht korrekt

weedo

Erfahrenes Mitglied
Hallo,

ich sitze gerade an einer kleinen Galerie für einen Freund. Die Uploadordnerstruktur sieht bei mir vor, dass jede Bildkategorie in einen anderen Ordner gelagert wird. Das auslesen, die Verknüpfung mit der Datenbank und auch das Benennen der Datei funktioniert. Nur leider möchte mein Script die hochgeladene Datei nicht aus dem Temp-Ordner meines lokalen Webservers verschieben.

Hat vielleicht jemand einen Tipp, warum es nicht funktioniert? Ich sitze mittlerweile seit einer Stunde an dem Fehler und weiß gerade einfach nicht weiter.

hier der Code:

PHP:
          $name = $_FILES["datei"]["tmp_name"];
          $cat = $_POST["cat"];
          $beschreibung = $_POST["beschreibung"];
          $result = mysql_query("SELECT COUNT(id) FROM uploads WHERE cat = '$cat'") or die(mysql_error());
          $db = mysql_fetch_row($result);
          $counter = $db[0];
          $counter++;
          $dateityp = GetImageSize($_FILES['datei']['tmp_name']);
          switch($dateityp[2]) {
            case "1": $dateiendung = ".gif"; break 1;
            case "2": $dateiendung = ".jpg"; break 1;
            case "3": $dateiendung = ".png"; break 1;
            case "4": $dateiendung = ".swf"; break 1;
            default: $error = "wrongFromat"; break;
          } 
          $folder = cats2folder($cat);
          $newdatei = $counter;
          $newdatei .= $dateiendung;
          if(!isset($error)) {
            move_uploaded_file($_FILES['datei']['tmp_name'] ,'upload/'. $_FILES['datei']['name']);
            mysql_query("INSERT INTO uploads(bild, beschreibung, cat) VALUES('$newdatei', '$beschreibung', '$cat')") or die(mysql_error());
            header("location: ../admin.php?site=upload");
          } else {
            header("location: ../admin.php?site=upload&e=$error");
          }

Ich habe den unrelevaten Teil weggeschnitten, da eine 300 Zeilen-Datei doch zu unübersichtlich werden könnte.

Für eine schnelle Hilfe wäre ich sehr dankbar.

Lg weedo
 
Hi,

werden evtl. irgendwelche Fehler oder Warnungen ausgegeben, wenn du an den Anfang des Scriptes diese Zeilen einfügst?

PHP:
// Setz mich an den Anfang des Scripts
ini_set('display_errors', 1);
error_reporting(-1);

Dazu solltest du allerdings die Weiterleitungen mittels header() temporär mal auskommentieren.
 
So einfach kann es manchmal sein.

Ich habe einen Fehler in der Ordnerstruktur gemacht.

Die Uploaddatei befindet sich im Ordner /php/,
die admin.php befindet sich im Ordner dadrüber. Genau wie der Upload ordner. Ich habe also versucht Dateien in den Ordner php/upload/ hochzuladen, der allerdings ../upload sein sollte.

Durch den Header habe ich natürlich die Nachricht nicht bekommen.

Vielen Dank für die schnelle Hilfe und den Stups in die richtige Richtung. Schönen Tag noch =)
 
Zurück